谢谢Qiang的指点!<br><br>HTML::DOM, HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法?<br><br>在顺利安装完Mozilla::DOM后,着手编写脚本时,却始终无法找到此模块(Mozilla::DOM)的初始化程序,即New方法。于是进一步google, 才发现需要Mozilla::Mechanize来作init的工作。进而安装Mozilla::Mechanize, make test 成功率只有5%, 无法正常安装。于是转而求助于WWW::Mechanize. 终于发现,WWW::Mechanize才是最适合我需要的东西。其优势有二:
<br><br>1, 成功解析HTML文档,能正确找到各种HTML Elements. <br>2, 不需要GTK支持。可以运行在Console模式。<br><br>但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM则完美的支持DOM里的一切。<br><br>虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编译都成功,而make test却无法通过? 尽管在configure的时候,并没有发现缺少哪个模块。
<br><br>Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复!<br><br>rorot <br><br><div><span class="gmail_quote">在07-11-25,<b class="gmail_sendername">Qiang ( James ) Li</b> &lt;<a href="mailto:shijialee@gmail.com">shijialee@gmail.com</a>
&gt; 写道:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">我对这个不在行,但看到过不少关于此类的信息,给你发过来做参考吧,只是不知<br>是否有用。 :)<br><br>HTML::DOM 底层用的是 HTML::TreeBuilder,或者你可以从 HTML::TreeBuilder
<br>下手? HTML::TreeBuilder::XPath 和 HTML::DOMbo 看起来可能也会有用。<br><br>另外,我最近看到 Web::Scraper 的例子感觉有些相似,推荐你看看。<br><a href="http://search.cpan.org/perldoc?Web::Scraper">http://search.cpan.org/perldoc?Web::Scraper</a> 作者的 use.perl
 里也提到 DOM<br>,有很多例子和 tutorials 下载。<a href="http://use.perl.org/journal.pl?op=">http://use.perl.org/journal.pl?op=</a><br>display&amp;uid=1653&amp;start=10<br><br>Qiang<br><br><br>rorot wrote:<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 诸位好,<br>&gt;<br>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我在使用Perl的HTML::DOM模块处理HTML文档时,出现了一些问题。<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 目的是通过Perl解析HTML文档,生成一个DOM对象。但在这个过程中,适合<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; HTML::DOM模块时,发现,此模块parse了html文档后,生成的DOM对象,丢弃了很<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 多原来HTML文档里的元素。甚至可以说,除了body能处理正确外,其他的Element
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 都无法正确处理。<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 我想:或者是我的script编写问题(参考了HTML::DOM的POD写的脚本), 或<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 者是<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 此模块(HTML::DOM)本身有问题,我看到它是alpha版本。<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在,我的问题是:如果需要在Perl下解析HTML文档生成DOM对象,使用<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; HTML::DOM模块足够吗?或者还有其他更好的模块?Perl能类似于 Mozilla那样,
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 对于某些不符合w3c规范的HTML文档也能良好处理吗?<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PS: 经过CPAN搜索,我看到了Mozilla::DOM模块,尝试编译时,发生错<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 误,需<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 要XPCOM支持,对XPCOM,几乎无印象,希望有懂得前辈指点一二。<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; rorot<br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------
<br>&gt;<br>&gt; _______________________________________________<br>&gt; China-pm mailing list<br>&gt; <a href="mailto:China-pm@pm.org">China-pm@pm.org</a><br>&gt; <a href="http://mail.pm.org/mailman/listinfo/china-pm">http://mail.pm.org/mailman/listinfo/china-pm
</a><br>_______________________________________________<br>China-pm mailing list<br><a href="mailto:China-pm@pm.org">China-pm@pm.org</a><br><a href="http://mail.pm.org/mailman/listinfo/china-pm">http://mail.pm.org/mailman/listinfo/china-pm
</a></blockquote></div><br>