0

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

警告:SimpleXMLElement::__construct(): 在 C:\wamp\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

4 回答 4

1

不要尝试用SimpleXMLElement, 或者DOMDocument更适合 HTML 解析的其他解决方案来解析它。

于 2012-10-03T21:56:22.823 回答
0

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

于 2012-10-03T22:02:38.533 回答
0

使用DOMDocumentand 或者loadHTML启用loadXML恢复。前者可能是你真正想要的。

<?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);

...
?>
于 2012-10-03T22:28:10.170 回答
0

希望没有人会因为“无关紧要”而投反对票,但我使用mechanize抓取网页并发现它非常直观和有效。用一个小api很容易学习。

我刚刚看到您使用的是 php 而不是 python。Mechanize 是一个 python/perl 库,所以在这里可能不相关。

于 2012-10-03T21:54:21.460 回答