我有一个网页http://dps.kse.com.pk/ticker/inc_ticker_xml.php,我想从表中的自动收录器中提取所有span和anchor标签值。像这个LPCL,11.06等 我试过curl和php dom文件。它不起作用。但是我在google.com和yahoo.com等其他网页上尝试过该脚本,但它不适用于此页面。
$html = file_get_contents($url);
$dom = new DOMDocument;
@$dom->loadHTML($html);
$links = $dom->getElementsByTagName('a');
//var_dump($links);
foreach ($links as $link){
echo '<a href = "'.$link->getAttribute('href').'">' ;
echo $link->getAttribute('href'), '<br>';
此代码适用于http://dps.kse.com.pk/ticker/inc_ticker_xml.php页面以外的其他页面。有没有办法废弃这个页面
答案 0 :(得分:0)
根据我自己的php抓取经验,我发现如果未设置用户代理,某些服务器将拒绝该请求。一旦我在curl设置中设置了用户代理,我的脚本就好了:)
这应该有所帮助: - http://davidwalsh.name/set-user-agent-php-curl-spoof
答案 1 :(得分:0)
此网站需要Cookie并启用javascript。因此,如果您请求该网站,您将在html源代码中获得如下内容。
setCookie('YPF8827340282Jdskjhfiw_928937459182JAX666', '219.109.39.29', 10);
location.href = getHostUri();
您必须从那里解析Cookie值,并需要通过CURL发送,如下所示。
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Cookie: YPF8827340282Jdskjhfiw_928937459182JAX666=219.109.39.29"));
之后你会找到一个不同的来源,它会有更多的javascript / ajax调用。如果你需要解析ajax的内容,可以跟踪调用(使用任何网络协议分析器,如wireshark)。
但是,祝这项繁琐的任务好运: - )