作者kornelius (c9s)
看板Perl
标题Re: [问题] 关於tree 结构
时间Mon May 18 23:25:03 2009
你可以使用 Ingy 写的 pQuery
或是 miyagawa 写的 Web::Scraper
不用几行就可以很方便的取出资讯了。
这是 Web::Scraper 的 synopsis
use URI;
use Web::Scraper;
my $ebay_auction = scraper {
process "h3.ens>a",
description => 'TEXT',
url => '@href';
process "td.ebcPr>span", price => "TEXT";
process "div.ebPicture >a>img", image => '@src';
};
my $ebay = scraper {
process "table.ebItemlist tr.single",
"auctions[]" => $ebay_auction;
result 'auctions';
};
my $res = $ebay->scrape( URI->new("
http://search.ebay.com/apple-ipod-nano_W0QQssP
ageNameZWLRS") );
※ 引述《abcg5 (nothing)》之铭言:
: 问题是这样的!
: 小弟写得程式需要
: 使用到DOM Tree结构
: 用道perl内建的module HTML::TreeBuilder;
: 先my $h = $tree->look_down('_tag', 'html'); 来建出结构!
: 接着小弟想要读取每个text nodes里面的字串
: 分别作处理!!
: 不过却只有看到as_text和content_list等方式去读取
: 而前者将全部的text nodes变成一个字串的形态!
: 没办法个别字串处理!
: 後者就只能回传child level的参照位置 需要一层一层去跑!
: 很没有效率!只要该html档的结构复杂 就需要跑很多层!
: 因为感觉perl算是一个蛮成熟的语言了!
: 不太可能没有方式 能直接读取个别text node的内容!!
: 所以上来询问看看!!
: 请大家指导一下!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.249.21.58
※ 编辑: kornelius 来自: 60.249.21.58 (05/19 00:12)