首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP解析HTML以获取多篇同类文章的数据

使用PHP解析HTML以获取多篇同类文章的数据
EN

Stack Overflow用户
提问于 2011-12-18 02:48:10
回答 3查看 530关注 0票数 1

我在一个网站上工作,它解析优惠券网站,并列出这些优惠券。有一些网站将它们的列表以XML文件的形式提供--这没有问题。但是也有一些站点不提供XML。我正在考虑解析他们的网站,从网站内容中获取优惠券信息--用PHP从HTML中抓取数据。例如,您可以看到以下站点:

http://www.biglion.ru/moscow/

我正在使用PHP。所以,我的问题是-有没有一种相对简单的方法来解析HTML并获得该站点上列出的每个优惠券的数据,就像我在解析XML时得到的那样?

谢谢你的帮助。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-18 02:53:31

您总是可以使用DOM parser,但从站点抓取内容充其量也是不可靠的。

如果他们的布局稍微改变一下,你的应用程序可能会失败。哦,而且在大多数情况下,这样做也不利于大多数网站。

票数 2
EN

Stack Overflow用户

发布于 2011-12-18 03:02:48

虽然使用DOM解析器似乎是个好主意,但我通常更喜欢使用优秀的旧正则表达式进行抓取。这项工作要少得多,而且如果网站改变了它的布局,不管你的方法是什么,你都要完蛋了。但是,如果使用足够智能的正则表达式,您的代码应该对不会直接影响您感兴趣的部分的更改具有免疫力。

要记住的一件事是,在regex中包含一些提供的类名,但要假设任何信息都可以在您需要的信息之间。例如。

代码语言:javascript
复制
preg_match_all('#class="actionsItemHeadding".*?<a[^>]*href="([^"]*)"[^>]*>(.*?)</a>#s', file_get_contents('http://www.biglion.ru/moscow/'), $matches, PREG_SET_ORDER);
print_r($matches);
票数 0
EN

Stack Overflow用户

发布于 2014-03-31 23:02:08

如果您喜欢使用php,那么最可靠的方法就是Php DOM解析器。下面是一个仅解析元素的示例。

代码语言:javascript
复制
// Include the library
include('simple_html_dom.php');


// Retrieve the DOM from a given URL
$html = file_get_html('http://mypage.com/');
// Find all "A" tags and print their HREFs
foreach($html->find('a') as $e) 
echo $e->href . '<br>';

我提供了关于解析其他html元素的some more information。我希望这会对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8547103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档