使用Simple Html Dom(PHP)无法找到并刮掉一些Div

时间:2017-06-08 18:10:30

标签: web-scraping simple-html-dom

我试图在中间刮掉那张桌子,这是我在这个网站上唯一需要的东西,也是我唯一能从中得到的东西那里。 经过几次尝试,我创建了这个小代码,刮掉了所有的html div,请告诉我我做错了什么以及你的想法。 谢谢! (在底部:我正在寻找的页面中的部分图片)

<?php
include_once("simple_html_dom.php");
$link = 'http://www.oddsportal.com/soccer/argentina/copa-argentina/colon-santa-fe-ind-rivadavia-bTD4Oj2C/?r=1#1X2;2';

$html = file_get_html($link);
$table = true;
$i = 0;

while ($table)
{
$table = $html->find("div",$i++);
echo $table;    

}
?>

the table

再次感谢:)

1 个答案:

答案 0 :(得分:1)

更新了答案

要删除它的网站中的表,在加载页面时将表放在那里,并带有ajax调用。所以;当你刮HTML时,那里没有桌子。

你们都可以模拟他们的ajax调用,但这对你来说会更难。在Chrome上打开您的网络标签并分析所有请求,当您找到将表格移到页面的真实请求时,请将其删除。

旧答案

我认为;你正确地刮了桌子。之后你需要一个for循环来抓取表格中的每个div。

foreach($html->find('tr div.l a') as $element) {
   echo $element->href;
}

您应该将上述代码改编为您的代码。

完整代码

<?php
  include_once("simple_html_dom.php");
  $link = 'http://www.oddsportal.com/soccer/argentina/copa-argentina/colon-santa-fe-ind-rivadavia-bTD4Oj2C/?r=1#1X2;2';

  $html = file_get_html($link);
  foreach($html->find('tr div.l a') as $element) {
    echo $element->href;
  }
?>