Chinaunix

标题: 求助大牛 如何获取网页元素 [打印本页]

作者: coolbug223    时间: 2011-10-29 19:32
标题: 求助大牛 如何获取网页元素
要获取元素的目标网页如下:
http://product.dangdang.com/product.aspx?product_id=21106015

想获取这个网页里的如下元素的内容:
<div class="item book_edit">

用Perl能实现吗?涉及哪方面的知识。
作者: txh_zyy    时间: 2011-10-30 00:26
Web::Scraper
作者: 兰花仙子    时间: 2011-10-30 09:02
要获取元素的目标网页如下:


想获取这个网页里的如下元素的内容:


用Perl能实现吗?涉及哪方面的 ...
coolbug223 发表于 2011-10-29 19:32



    试试HTML::TreeBuilder,这个用来解析网页元素。
作者: Hu_Liqiang    时间: 2012-07-04 19:51
我不懂啦 想要书本

作者: lkk_super    时间: 2012-07-05 00:37
把页面搞下来然后xpath~~~
作者: iamlimeng    时间: 2012-07-05 05:43
我一般都是下载网页后用正则找,不过现在很多网页使用了ajix,需要先跟踪一下链接!
作者: py    时间: 2012-07-05 07:46
lkk_super 发表于 2012-07-05 00:37
把页面搞下来然后xpath~~~


大概的步骤就是上面说的这样。你要做的是两件事:
1. 下载网页
2. XPATH分析网页,拿到你要的元素

Web::Scraper是做步骤2的,推荐使用。
Web::Scraper实际上就是使用HTML::TreeBuilder来生成DOM的,当你用XPATH取得网页元素的时候,实际上使用的是HTML::TreeBuilder::XPath,这也是Web::Scraper模块的默认行为。
HTML::TreeBuilder::XPath模块实际上使用的是libxml,这个效率相比libxml2要低,所以后来膏药国的人就做了HTML::TreeBuilder::LibXML模块,这个模块对应使用libxml2,是目前效率最高的DOM方式解析xml/html的方式。所谓“使用libxml2”其实还是用的XML::LibXML,我多次给这个模块做宣传。。。 很多效率要求高的地方,例如大量的XML日志,我都是直接用XML::LibXML做的。

可能因为同是膏药国的人,后来Web::Scraper也支持了HTML::TreeBuilder::LibXML模块,我一般都是明确指定“use Web::Scraper::LibXML;”。

最后说步骤1,如果网页不多,就LWP。多的话考虑AnyEvent::HTTP
作者: py    时间: 2012-07-05 08:03
刚看到楼主的目标网页

现在很多人要获取网页元素多是做些商城相关的操作,但又缺乏很多基础知识。
其实这是一个很没含金量但又挺有意思的事,建议楼主多看看相关技术。如果你做过一些简单的搜索,你至少能知道XPATH是满足你需求的最合理答案。
作者: 斯文牛氓    时间: 2012-07-12 14:13
正则是最快的
作者: cdtits    时间: 2012-07-12 14:26
perl 肯定能满足楼主的要求




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2