从未正确形成的网页中抓取数据

时间:2012-10-03 21:51:06

标签: php curl scraper

我正在尝试从网页中删除数据。网页可以是任何页面。例如,我正在使用http://www.google.com/抓取curl。它提供了很多警告,什么都不做。警告在第30行:

  

警告:SimpleXMLElement :: __ construct():in   C:\瓦帕\ WWW \ nbacurl \的index.php

并且此错误重复了几次。

我听说过simplehtmldom,我下载了它,但不知道如何使用它。我有页面要解析,但我找不到出路。这是一个非常简单的代码,无效。

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.google.com' );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);

$xml = new SimpleXMLElement($contents);
echo '<pre>' , print_r($xml) , '</pre'>; 

4 个答案:

答案 0 :(得分:1)

请勿尝试使用SimpleXMLElement解析它,或者提供DOMDocument或其他更适合HTML解析的解决方案。

答案 1 :(得分:0)

希望没有人会因为“不相关”而拒绝投票,但我使用mechanize来抓取网页并发现它非常直观和有效。用小api很容易学习。

我刚看到你使用的是php而不是python。 Mechanize是一个python / perl库,因此它可能与此无关。

答案 2 :(得分:0)

也许尝试ScriptableBrowser(对于PHP)。我个人在python中使用Mechanize和BeautifulSoup。

答案 3 :(得分:0)

启用恢复后,使用DOMDocument以及loadHTMLloadXML。前者很可能是你真正想要的。

<?php
$doc = new DOMDocument();
$doc->loadHTML($contents);

...
?>

请参阅:http://www.php.net/manual/en/class.domdocument.php#domdocument.props.recover

<?php
$doc = new DOMDocument();
$doc->recover = TRUE;
$doc->loadXML($contents);

...
?>