【问题标题】:Error with loadHtml on curled HTML卷曲 HTML 上的 loadHtml 错误
【发布时间】:2014-11-13 10:40:59
【问题描述】:

我有一个脚本,我在其中使用 curl 加载 google play 游戏的网页。

接下来,我尝试提取类为"cover-image"<img>的src

这是我的脚本

<?php

$url = "https://play.google.com/store/apps/details?id=com.igg.castleclash";
$ch = curl_init();
$timeout = 5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$data = curl_exec($ch);

echo $data;

$dom = new DOMDocument();
$dom->loadHTML($data);
$xp = new DOMXPath($dom);
$srcs = array();
$result = $xp->query("//img[@class='cover-image']/@src");
foreach($result as $attr) 
{
    echo $attr->value. "<br/>";
}

?>

问题是,如果我正在执行此代码echo $data;

然后显示整个html,我可以得到cover-image的src

但是当我评论出来的时候。即删除echo $data;,代码显示没有数据的空白网页。

我该如何解决这个问题?

提前致谢。

【问题讨论】:

    标签: php html curl domdocument


    【解决方案1】:

    或者,您可以直接将其加载到-&gt;loadHTMLFile()。示例:

    $dom = new DOMDocument;
    libxml_use_internal_errors(true);
    $dom->loadHTMLFile('https://play.google.com/store/apps/details?id=com.igg.castleclash');
    libxml_clear_errors();
    $xp = new DOMXPath($dom);
    $image_src = $xp->query("//img[@class='cover-image']/@src");
    foreach($image_src as $attr) {
        echo $attr->value. "<br/>";
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-27
      • 1970-01-01
      • 2018-12-24
      • 2017-07-06
      • 2015-04-18
      • 1970-01-01
      • 2012-02-27
      • 2012-03-29
      相关资源
      最近更新 更多