【发布时间】:2011-09-18 18:53:23
【问题描述】:
我是 PHP 和 cURL 的新手,所以请给出简单的步骤! :)
我正在尝试从将 XML 数据返回为 HTML 的网站中抓取数据。
cURL 将响应检索为“5814 3300”而不是源
<?xml version="1.0" encoding="iso-8859-1"?><app><info><bookID>58</bookID><firstbook><t>14 </t><status>3</status></firstbook><nextbook><t>30</t><status>0</status></nextbook></info></app>
我需要的(所以我可以对结果进行 preg_match)
如何将“5814 3300”输出转换为所需的 XML? 谢谢!
请注意:这个问题是我在困惑的状态下提出的。 cURL 确实会输出源代码。
【问题讨论】:
-
你能告诉我为什么我不能使用 cURL 来抓取 XML 吗?我对此的理解不是很深 - 谢谢!
-
您可以为此使用 cURL。但你不应该。除非在您的主机的 php.ini 上禁用了
allow_url_fopen,否则上面提到的任何 XML/HTML 解析器都可以直接加载 URI,并且它们对标记的控制比任何正则表达式都多,因为 XML/HTML 解析器实际上理解标记规则,而 Regex 必须首先学习这些规则(这很乏味)。 -
我明白了。这就是为什么正则表达式根本没有提取任何东西的原因。你能给我指出一个非常简单的抓取 XML 的教程吗?我四处搜索并看到了 XML 抓取教程,但它们使用“foreach”代码,而且它们似乎过于复杂。最终,我想要做的只是提取
中14 和 标记之间的值 -
我给出的答案中有很多例子。见stackoverflow.com/search?q=user%3A208809+dom+html
-
我去看看。感谢您的时间和帮助!
标签: php html xml curl screen-scraping