首先感谢您的下一步回复。
我无法获取
的页面源代码(提取内容)http://steamcommunity.com/market/search?q=booster#p2( - > $ path)
这是我的第一个源代码:
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $path);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt ($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
$file_contents = curl_exec($ch);
curl_close($ch);
$file_contents = htmlentities($file_contents);
print_r($file_contents);
这是第二次试验:
$fp=null;
$fp=@fopen($path,"r");
$contenu = "";
if($fp){
while(!feof($fp)){
$contenu .= stream_get_line($fp,65535);
}
print_r($contenu);
}
else{
echo "Impossible d'ouvrir la page $path";
}
使用此代码我获得此页面的源代码:http://steamcommunity.com/market/search?q=booster或此页面.... / market / search?q = booster#p1
我说firefox显示的源代码不好,只有dom检查员才能看到“真正的”源代码。 你有解决方案吗?
答案 0 :(得分:1)
您将无法使用PHP执行此操作。您需要执行页面的javascript来获取呈现的DOM。 (渲染的DOM是您在使用DOM检查器时看到的。)
也许使用PhantomJS打开页面并获取渲染的DOM。请参阅Using Phantom.js evaluate, how can I get the HTML of the page?。
答案 1 :(得分:0)
我说firefox显示的源代码不好,只有dom检查员才能看到“真正的”源代码。你有解决方案吗?
这完全倒退了。 DOM检查器显示页面的当前状态,由Javascript和/或用户修改(例如,表单状态更改)。 Firefox的“查看源”显示的源代码是Web服务器提供的“真实”源代码。
答案 2 :(得分:0)
您的网址错误。相反,点击其中的AJAX查询并将其解析为JSON:
$f = file_get_contents(
"http://steamcommunity.com/market/search/render/?" .
"query=booster&start=10&count=10"
);
$t = json_decode( $f );
print_r( $t );
你得到一个整齐有序的结构,例如:
stdClass Object (
[success] => 1
[start] => 0
[pagesize] => 10
[total_count] => 330
[results_html] => <div class="market_listing_table_header">
...
基本上,用于呈现页面的JSON文件可以在PHP中作为一个简洁的结构读取。或者足够接近。您仍然需要使用DOM Document / XPath遍历$t->results_html
以进一步解析。