【问题标题】:How do I wait for my script to load the page with PHP Simple HTML DOM Parser?如何等待我的脚本使用 PHP Simple HTML DOM Parser 加载页面?
【发布时间】:2019-04-13 17:15:23
【问题描述】:

我正在调用一个有 javascript 加载代码的网站。当我启动脚本时,我只收集已经加载的数据,但它不会等待它加载整个页面。

我尝试收集一些 div 中显示的数据,以便在我的后端从 trivago 的 web 中进行统计,其中有一个加载器。为此,我启动以下代码:

include_once('simple_html_dom.php');

function getHTML($url,$timeout){
  $ch = curl_init($url); // initialize curl with given url
  curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTPS_USER_AGENT"]); // set  
  useragent
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to a variable
  curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if any
  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to execute
  curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an error
  return @curl_exec($ch);
}

$html = file_get_html("https://www.trivago.es/?aDateRange%5Barr%5D=13-04-2019&aDateRange%5Bdep%5D=14-04-2019&iPathId=82650&iGeoDistanceItem=0&aCategoryRange=0%2C1%2C2%2C3%2C4%2C5&aOverallLiking=1%2C2%2C3%2C4%2C5&sOrderBy=relevance%20desc&iRoomType=7&cpt=8265003&iViewType=0&bIsSeoPage=false&bIsSitemap=false&");

我尝试使用 find() 函数收集数据:

foreach($html->find("div.item__flex-column") as $seccion) {
  echo "<tr>";
    echo "<td>";
      echo $seccion->find("h3",0)->plaintext;
    echo "</td>";
    echo "<td>";
      echo $seccion->find("p.details__paragraph",0)->plaintext;
    echo "</td>";
    echo "<td>";
      echo $seccion->find("strong.item__best-price",0)->plaintext; 
    echo "</td>";
    echo "<td style='text-decoration:line-through;'>";
      echo $seccion->find($fmp,0)->plaintext; 
    echo "</td>";
  echo "</tr>";
}

我得到的错误是:

致命错误:未捕获的错误:调用字符串上的成员函数 find()

有什么方法可以停止 PHP 程序直到它加载整个页面?

【问题讨论】:

    标签: php html


    【解决方案1】:

    试试

    echo $seccion->find("h3")[0]->plaintext;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-04
      • 2015-05-09
      • 1970-01-01
      • 2011-09-04
      • 2012-04-08
      • 2019-09-21
      • 1970-01-01
      相关资源
      最近更新 更多