0

Simple HTML DOMライブラリを使用しているときに、いくつかのWebサイトで問題が発生しました。次のURLを読み込もうとしたときhttp://www.t-mobile.com/shop/phones/cell-phone-detail.aspx?cell-phone=HTC-One-S-Gradient-Blue&tab=reviews#BVRRWidgetID

私のPHPコードは次のとおりです。

<?php

include "simple_html_dom.php";

$html=new simple_html_dom();
$url="http://www.t-mobile.com/shop/phones/cell-phone-detail.aspx?cell-phone=HTC-One-S-    Gradient-Blue&tab=reviews#BVRRWidgetID";
$html->load_file($url);
echo $html;

?>

phpスクリプトはエラーを出しませんが、毎回次の内容を表示します。

Unsupported Browser
It appears that you are viewing this page with an unsupported Web browser. This Web site works best with one of these supported browsers:

Microsoft Internet Explorer 5.5 or higher
Netscape Navigator 7.0 or higher
Mozilla Firefox 1.0 or higher

If you continue to view our site with your current browser, certain pages may not display correctly and certain features may not work properly for you.

何が問題ですか?Simple HTML DOMには制限がありますか?この問題を解決する他の方法はありますか?

4

3 に答える 3

1

simple_html_dom リクエストで USERAGENT を設定するだけです:

# Creating useragent array
$useragent = array("http" => "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6");

# Creating a line from array
$useragent = stream_context_create($useragent);

# Starting Simple_HTML_Dom with our useragent
$html = file_get_html($urlCategory, $useragent)

そのため、私たちのリクエストはあなたのブラウザよりも新しいブラウザからのものになります。

于 2015-10-31T21:23:13.227 に答える
1

一部の Web サイトでは、コンテンツを直接スクラップすることは許可されていません。

curl fetch html コンテンツを使用してから、dom オブジェクトの load() を使用できます。

私はそれがあなたのために働くことを願っています.

于 2012-11-06T11:50:20.340 に答える
0

ユーザーエージェントを設定する

$context = stream();
stream($context, array('user_agent' => 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6\r\n'));
file_get_html('http://www.t-mobile.com/shop/phones/cell-phone-detail.aspx?cell-phone=HTC-One-S-    Gradient-Blue&tab=reviews#BVRRWidgetID', 0, $context);
于 2016-10-21T06:52:30.667 に答える