[PerlChina] perl解析HTML处理成DOM对象的处理

Qiang ( James ) Li shijialee at gmail.com
Sun Nov 25 17:10:00 PST 2007


看下面的回复....

rorot wrote:
> 谢谢Qiang的指点!
> 

不客气  :)

> HTML::DOM, HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个 
> DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法?
> 
> 在顺利安装完Mozilla::DOM后,着手编写脚本时,却始终无法找到此模块 
> (Mozilla::DOM)的初始化程序,即New方法。于是进一步google, 才发现需要 
> Mozilla::Mechanize来作init的工作。进而安装Mozilla::Mechanize, make test 
> 成功率只有5%, 无法正常安装。于是转而求助于WWW::Mechanize. 终于发现, 
> WWW::Mechanize才是最适合我需要的东西。其优势有二:
> 
> 1, 成功解析HTML文档,能正确找到各种HTML Elements.
> 2, 不需要GTK支持。可以运行在Console模式。
> 
> 但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM 
> 则完美的支持DOM里的一切。
> 
> 虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支 
> 持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编 
> 译都成功,而make test却无法通过? 尽管在configure的时候,并没有发现缺少 
> 哪个模块。
> 

什么错误提示?如果是纯 Perl 的模块,可以省掉 test, 不妨在安装前先 use 一
下,make 成功后 M::M 应该已经在你的编译的目录里了。

另外,你最终解决的是什么问题?提出来没准有其他的方法。

Qiang


> Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复!
> 
> rorot
> 
> 在07-11-25,*Qiang ( James ) Li* <shijialee at gmail.com 
> <mailto:shijialee at gmail.com> > 写道:
> 
>     我对这个不在行,但看到过不少关于此类的信息,给你发过来做参考吧,只是不知
>     是否有用。 :)
> 
>     HTML::DOM 底层用的是 HTML::TreeBuilder,或者你可以从 HTML::TreeBuilder
>     下手? HTML::TreeBuilder::XPath 和 HTML::DOMbo 看起来可能也会有用。
> 
>     另外,我最近看到 Web::Scraper 的例子感觉有些相似,推荐你看看。
>     http://search.cpan.org/perldoc?Web::Scraper 作者的 use.perl 里也提到 DOM
>     ,有很多例子和 tutorials 下载。http://use.perl.org/journal.pl?op=
>     display&uid=1653&start=10
> 
>     Qiang
> 
> 
>     rorot wrote:
>      >       诸位好,
>      >
>      >         我在使用Perl的HTML::DOM模块处理HTML文档时,出现了一些问题。
>      >
>      >         目的是通过Perl解析HTML文档,生成一个DOM对象。但在这个过程
>     中,适合
>      >     HTML::DOM模块时,发现,此模块parse了html文档后,生成的DOM对
>     象,丢弃了很
>      >     多原来HTML文档里的元素。甚至可以说,除了body能处理正确外,其
>     他的Element
>      >     都无法正确处理。
>      >
>      >         我想:或者是我的script编写问题(参考了HTML::DOM的POD写的脚
>     本), 或
>      >     者是
>      >     此模块(HTML::DOM)本身有问题,我看到它是alpha版本。
>      >
>      >         现在,我的问题是:如果需要在Perl下解析HTML文档生成DOM对
>     象,使用
>      >     HTML::DOM模块足够吗?或者还有其他更好的模块?Perl能类似于
>     Mozilla那样,
>      >     对于某些不符合w3c规范的HTML文档也能良好处理吗?
>      >
>      >         PS: 经过CPAN搜索,我看到了Mozilla::DOM模块,尝试编译时,
>     发生错
>      >     误,需
>      >     要XPCOM支持,对XPCOM,几乎无印象,希望有懂得前辈指点一二。
>      >
>      >     rorot
>      >
>      >
>      >
>     ------------------------------------------------------------------------
> 
>      >
>      > _______________________________________________
>      > China-pm mailing list
>      > China-pm at pm.org <mailto:China-pm at pm.org>
>      > http://mail.pm.org/mailman/listinfo/china-pm
>     <http://mail.pm.org/mailman/listinfo/china-pm>
>     _______________________________________________
>     China-pm mailing list
>     China-pm at pm.org <mailto:China-pm at pm.org>
>     http://mail.pm.org/mailman/listinfo/china-pm
>     <http://mail.pm.org/mailman/listinfo/china-pm>
> 
> 


More information about the China-pm mailing list