2013-03-08 94 views
0

我花了整天尝试不同的PHP HTML解析器用于网页抓取。 他们都处理Google.com很好,或者他们在其主页上发布的其他类似示例。但他们都失败了“http://www.nhl.com/ice/schedulebyseason.htm”。PHP HTML解析器(是否没有好的HTML解析器)

本来我已经写了一个Perl脚本来做到这一点。 Web :: Scraper perl完全没有问题。我5分钟前回去了,它完美地完成了这项工作。但我的共享主机并不真正支持Perl。即使对于PHP,我也坚持使用5.3.13,我想。

如果您尝试使用:

  1. PHP简单的HTML DOM解析器
  2. 加农

他们失败。

PHP简单地抛出一个Call to a member function find() on a non-object异常,当我尝试使用返回的分析文档。我认为这是它失败的原因,通过返回null或其他。

ganon刚刚处理时,给定的网址。

这是怎么回事?我是PHP的完全新手。

PHP简单的HTML DOM解析器实例:

include_once('simple_html_dom.php'); 

$doc = file_get_html('http://www.nhl.com/ice/schedulebyseason.htm'); 

foreach($doc->find('img') as $img){ 
    echo $img->id . '<br>'; 
} 

加农:

include_once('ganon.php'); 

$doc = file_get_dom('http://www.nhl.com/ice/schedulebyseason.htm'); 
+0

我已经用php构建了各种web scrapers,它们并没有失败。代码中必须存在错误。 – ShaShads 2013-03-08 04:40:12

+1

您是否验证了您获得返回的代码?寻找错误,或者他们是否检测到废品,并将垃圾代码返还给您。 – Danny 2013-03-08 04:42:25

+0

我没有。但在大多数情况下,没有任何东西可以返回测试。你可以看到Ganon的一行代码,它会一直运行,直到达到最大执行时间或关闭窗口(如果我设置了时间限制(0))。我无法测试任何东西。 – Jonathon 2013-03-08 04:53:10

回答

2

的Symfony的2框架有一个相当真棒解析器

退房DomCrawler & Goutte

你可以安装个别组件也使用composer

+0

他们在哪里我第一次尝试。他们都需要比我能够在我的共享主机帐户上获得的PHP版本更高的版本。 5.3.2和5.3.3分别代替我的5.3.13,如果我没记错的话。 – Jonathon 2013-03-08 05:14:22

+3

@JonathonWisnoski 5.3.13> 5.3.3 – Ben 2013-03-08 05:26:02

+1

哇,我是个白痴。 – Jonathon 2013-03-08 14:01:17