From tigerpeng2001 at yahoo.com Thu Nov 1 18:04:02 2007 From: tigerpeng2001 at yahoo.com (tiger peng) Date: Thu, 1 Nov 2007 18:04:02 -0700 (PDT) Subject: [PerlChina] China-pm Digest, Vol 31, Issue 1 Message-ID: <295838.87967.qm@web58714.mail.re1.yahoo.com> I cannot receive discussing mail or the mail sent by myself to china-pm at pm.org. I can only receive China-pm Digest. ----- Original Message ---- From: "china-pm-request at pm.org" To: china-pm at pm.org Sent: Thursday, November 1, 2007 2:00:09 PM Subject: China-pm Digest, Vol 31, Issue 1 Send China-pm mailing list submissions to china-pm at pm.org To subscribe or unsubscribe via the World Wide Web, visit http://mail.pm.org/mailman/listinfo/china-pm or, via email, send a message with subject or body 'help' to china-pm-request at pm.org You can reach the person managing the list at china-pm-owner at pm.org When replying, please edit your Subject line so it is more specific than "Re: Contents of China-pm digest..." Today's Topics: 1. Re: mailing list (cnhack TNT) ---------------------------------------------------------------------- Message: 1 Date: Thu, 1 Nov 2007 13:56:59 +0800 From: "cnhack TNT" Subject: Re: [PerlChina] mailing list To: china-pm at pm.org Message-ID: Content-Type: text/plain; charset="iso-8859-1" Hey, tiger peng We can receive your email, and it seems fine, what's your problem? can't receive our discussing mail or just can't receive the mail sent by yourself? On 10/31/07, tiger peng wrote: > > I still cannot receive the email. I read your email by visiting > October 2007 Archives by thread > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071101/57a08791/attachment.htm ------------------------------ _______________________________________________ China-pm mailing list China-pm at pm.org http://mail.pm.org/mailman/listinfo/china-pm End of China-pm Digest, Vol 31, Issue 1 *************************************** -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071101/72cde157/attachment.html From fayland at gmail.com Thu Nov 1 18:08:17 2007 From: fayland at gmail.com (Fayland Lam) Date: Fri, 02 Nov 2007 01:08:17 +0000 Subject: [PerlChina] China-pm Digest, Vol 31, Issue 1 In-Reply-To: <295838.87967.qm@web58714.mail.re1.yahoo.com> References: <295838.87967.qm@web58714.mail.re1.yahoo.com> Message-ID: <472A7881.6080209@gmail.com> I think that's because of the settings in china-pm. go http://mail.pm.org/mailman/listinfo/china-pm to have a check. tiger peng wrote: > I cannot receive discussing mail or the mail sent by myself to > china-pm at pm.org . I can only receive China-pm > Digest. > > ----- Original Message ---- > From: "china-pm-request at pm.org" > To: china-pm at pm.org > Sent: Thursday, November 1, 2007 2:00:09 PM > Subject: China-pm Digest, Vol 31, Issue 1 > > Send China-pm mailing list submissions to > china-pm at pm.org > > To subscribe or unsubscribe via the World Wide Web, visit > http://mail.pm.org/mailman/listinfo/china-pm > or, via email, send a message with subject or body 'help' to > china-pm-request at pm.org > > You can reach the person managing the list at > china-pm-owner at pm.org > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of China-pm digest..." > > > Today's Topics: > > 1. Re: mailing list (cnhack TNT) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Thu, 1 Nov 2007 13:56:59 +0800 > From: "cnhack TNT" > > Subject: Re: [PerlChina] mailing list > To: china-pm at pm.org > Message-ID: > > > Content-Type: text/plain; charset="iso-8859-1" > > Hey, tiger peng > > We can receive your email, and it seems fine, what's your problem? can't > receive our discussing mail or just can't receive the mail sent by > yourself? > > > > On 10/31/07, tiger peng > wrote: > > > > I still cannot receive the email. I read your email by visiting > > October 2007 Archives by thread > > > > _______________________________________________ > > China-pm mailing list > > China-pm at pm.org > > http://mail.pm.org/mailman/listinfo/china-pm > > > -------------- next part -------------- > An HTML attachment was scrubbed... > URL: > http://mail.pm.org/pipermail/china-pm/attachments/20071101/57a08791/attachment.htm > > > ------------------------------ > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > > End of China-pm Digest, Vol 31, Issue 1 > *************************************** > > ------------------------------------------------------------------------ > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm From formalin14 at gmail.com Fri Nov 16 02:26:50 2007 From: formalin14 at gmail.com (Achilles Xu) Date: Fri, 16 Nov 2007 18:26:50 +0800 Subject: [PerlChina] is joe here? Message-ID: <4a6c0ba80711160226t4e657483w4e6a3abaf2237615@mail.gmail.com> how to contact joe? -- --------------------------- Achilles Xu http://www.lostcode.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071116/79ee1bdc/attachment.html From shijialee at gmail.com Fri Nov 16 22:12:26 2007 From: shijialee at gmail.com (Qiang ( James ) Li) Date: Sat, 17 Nov 2007 01:12:26 -0500 Subject: [PerlChina] is joe here? In-Reply-To: <4a6c0ba80711160226t4e657483w4e6a3abaf2237615@mail.gmail.com> References: <4a6c0ba80711160226t4e657483w4e6a3abaf2237615@mail.gmail.com> Message-ID: <473E864A.6020500@gmail.com> his gmail account is joejiang799 Qiang Achilles Xu wrote: > how to contact joe? > > -- > --------------------------- > Achilles Xu > http://www.lostcode.org > ------------------------------------------------------------------------ > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm From shijialee at gmail.com Sun Nov 18 11:53:05 2007 From: shijialee at gmail.com (Qiang ( James ) Li) Date: Sun, 18 Nov 2007 14:53:05 -0500 Subject: [PerlChina] =?utf-8?q?Oreilly_=E5=8C=97=E4=BA=AC_beijing_foo_camp?= Message-ID: <47409821.8050902@gmail.com> 感兴趣的朋友应该留意一下。。。 Oreilly 的 11月用户组的 newsletter 有篇 Tim Oreilly (奥莱里出版公司的创 始人) 谈北京 Foo Camp 聚会的文章(11月 9, 10 号 举行的 )。 http://radar.oreilly.com/archives/2007/11/china_foo_camp.html Tim 里面提到中西方参与者的交流问题。上海的现代化会让此类聚会容易举办些, 北京则更传统一些。还有北京的空气污染。 不过 Tim 提到他感受到一股复兴,向上的力量。他引用了类似西部探险的话: "Go west, young man." 以前指的是加利福尼亚,现在是 China! 另上海去年有举办 Bar Camp... newsletter: http://www.oreillynet.com/oreilly/ug/nov07-newsletter.html foo camp 北京 http://xoops.org.cn/modules/wordpress/?p=444 Bar Camp 上海 http://barcampshanghai.org/cgi-bin/page.pl 网站好像用的 kwiki Qiang From formalin14 at gmail.com Sun Nov 18 18:36:21 2007 From: formalin14 at gmail.com (Achilles Xu) Date: Mon, 19 Nov 2007 10:36:21 +0800 Subject: [PerlChina] is joe here? In-Reply-To: <473E864A.6020500@gmail.com> References: <4a6c0ba80711160226t4e657483w4e6a3abaf2237615@mail.gmail.com> <473E864A.6020500@gmail.com> Message-ID: <4a6c0ba80711181836l1853c2deyf259fa9b3149683b@mail.gmail.com> thanks 2007/11/17, Qiang ( James ) Li : > > his gmail account is joejiang799 > > Qiang > > Achilles Xu wrote: > > how to contact joe? > > > > -- > > --------------------------- > > Achilles Xu > > http://www.lostcode.org > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > China-pm mailing list > > China-pm at pm.org > > http://mail.pm.org/mailman/listinfo/china-pm > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm -- --------------------------- Achilles Xu http://www.lostcode.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071119/fd3926ed/attachment.html From formalin14 at gmail.com Sun Nov 18 18:43:19 2007 From: formalin14 at gmail.com (Achilles Xu) Date: Mon, 19 Nov 2007 10:43:19 +0800 Subject: [PerlChina] is joe here? In-Reply-To: <4a6c0ba80711181836l1853c2deyf259fa9b3149683b@mail.gmail.com> References: <4a6c0ba80711160226t4e657483w4e6a3abaf2237615@mail.gmail.com> <473E864A.6020500@gmail.com> <4a6c0ba80711181836l1853c2deyf259fa9b3149683b@mail.gmail.com> Message-ID: <4a6c0ba80711181843m4106a72ai852243ef20c70e4e@mail.gmail.com> gmail said: no such user. :( 2007/11/19, Achilles Xu : > > thanks > > 2007/11/17, Qiang ( James ) Li : > > > > his gmail account is joejiang799 > > > > Qiang > > > > Achilles Xu wrote: > > > how to contact joe? > > > > > > -- > > > --------------------------- > > > Achilles Xu > > > http://www.lostcode.org > > > > > ------------------------------------------------------------------------ > > > > > > _______________________________________________ > > > China-pm mailing list > > > China-pm at pm.org > > > http://mail.pm.org/mailman/listinfo/china-pm > > _______________________________________________ > > China-pm mailing list > > China-pm at pm.org > > http://mail.pm.org/mailman/listinfo/china-pm > > > > > -- > --------------------------- > Achilles Xu > http://www.lostcode.org > -- --------------------------- Achilles Xu http://www.lostcode.org -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071119/884e52ec/attachment.html From yang.liana at gmail.com Sat Nov 24 02:56:36 2007 From: yang.liana at gmail.com (rorot) Date: Sat, 24 Nov 2007 18:56:36 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= Message-ID: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> 诸位好, 我在使用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 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071124/26eedece/attachment.html From wanmyome at gmail.com Sat Nov 24 03:55:16 2007 From: wanmyome at gmail.com (=?UTF-8?B?5LiH5pyd5Lyf?=) Date: Sat, 24 Nov 2007 19:55:16 +0800 Subject: [PerlChina] =?utf-8?b?cGVybOino+aekEhUTUzlpITnkIbmiJBET03lr7k=?= =?utf-8?b?6LGh55qE5aSE55CG?= In-Reply-To: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> Message-ID: <9ff89e80711240355j503bdbcape2029749f23b27be@mail.gmail.com> XPCOM,是Mozilla浏览器的核心,你是什么平台?在linux下很好编译,windows下我没有试过 在07-11-24,rorot 写道: > > 诸位好, > > 我在使用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 > http://mail.pm.org/mailman/listinfo/china-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071124/8e884475/attachment.html From yang.liana at gmail.com Sat Nov 24 04:17:00 2007 From: yang.liana at gmail.com (rorot) Date: Sat, 24 Nov 2007 20:17:00 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <9ff89e80711240355j503bdbcape2029749f23b27be@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <9ff89e80711240355j503bdbcape2029749f23b27be@mail.gmail.com> Message-ID: <3aac2b3b0711240417k1c9d3bfbq10b37e5ca2c43b39@mail.gmail.com> 谢谢你的回复。 我的系统是Ubuntu 7.04, 自带的firefox浏览器,当前版本是2.0.0.8, 当我安装Mozilla::DOM时,提示说找不到XPCOM, 然后我就茫然无措了。。。 GOOGLE搜索之后,有帖子说安装Firefox-dev的包可以解决。在我安装了firefox-dev包之后,Mozilla::DOM模块终于可以正常编译,安装成功! 现在我想问一个关于Mozilla-firefox编译的问题: 有帖子说Mozilla的XPCOM需要源码编译完整的Mozilla-Firefox,才会有XPCOM, 于是下载源码firefox-2.0.0.9-source.tar.bz2,编译,make 的时候出现错误。说是: ipcdclient.o: In function `nsTHashtable > >::s_HashKey(PLDHashTable*, void const*)': ipcdclient.cpp:(.text._ZN12nsTHashtableI17nsBaseHashtableETI11nsIDHashKey8nsRefPtrI13ipcTargetDataEEE9s_HashKeyEP12PLDHashTablePKv[nsTHashtable > >::s_HashKey(PLDHashTable*, void const*)]+0x19): undefined reference to `nsIDHashKey::HashKey(nsID const*)' collect2: ld returned 1 exit status make[3]: *** [libipcdc.so] Error 1 make[3]: Leaving directory `/home/rorot/source/mozilla/ipc/ipcd/client/src' make[2]: *** [libs] Error 2 make[2]: Leaving directory `/home/rorot/source/mozilla/ipc/ipcd' make[1]: *** [tier_9] Error 2 make[1]: Leaving directory `/home/rorot/source/mozilla' make: *** [default] Error 2 编译设置如下: ./configure --enable-application=standalone 能提示一下我的机器上,为什么会编译firefox出现如下问题吗?另: XPCOM可以支持我的程序,比如perl, c, js和firefox交互?甚至于不启动Firefox都可以吗? 再次感谢你的帮助! rorot 在07-11-24,万朝伟 写道: > > XPCOM,是Mozilla浏览器的核心,你是什么平台?在linux下很好编译,windows下我没有试过 > > 在07-11-24,rorot 写道: > > > > 诸位好, > > > > 我在使用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 > > http://mail.pm.org/mailman/listinfo/china-pm > > > > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071124/446b49ec/attachment.html From shijialee at gmail.com Sat Nov 24 22:34:21 2007 From: shijialee at gmail.com (Qiang ( James ) Li) Date: Sun, 25 Nov 2007 01:34:21 -0500 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> Message-ID: <4749176D.9010406@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 > http://mail.pm.org/mailman/listinfo/china-pm From yang.liana at gmail.com Sun Nov 25 00:54:07 2007 From: yang.liana at gmail.com (rorot) Date: Sun, 25 Nov 2007 16:54:07 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <4749176D.9010406@gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> Message-ID: <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> 谢谢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的时候,并没有发现缺少哪个模块。 Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复! rorot 在07-11-25,Qiang ( James ) Li 写道: > > 我对这个不在行,但看到过不少关于此类的信息,给你发过来做参考吧,只是不知 > 是否有用。 :) > > 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 > > http://mail.pm.org/mailman/listinfo/china-pm > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071125/f18f426e/attachment.html From shijialee at gmail.com Sun Nov 25 17:10:00 2007 From: shijialee at gmail.com (Qiang ( James ) Li) Date: Sun, 25 Nov 2007 20:10:00 -0500 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> Message-ID: <474A1CE8.8090501@gmail.com> 看下面的回复.... 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* > 写道: > > 我对这个不在行,但看到过不少关于此类的信息,给你发过来做参考吧,只是不知 > 是否有用。 :) > > 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 > > http://mail.pm.org/mailman/listinfo/china-pm > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > > > From jzhang533 at gmail.com Sun Nov 25 18:27:12 2007 From: jzhang533 at gmail.com (jzhang) Date: Mon, 26 Nov 2007 10:27:12 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> Message-ID: > 谢谢Qiang的指点! > > HTML::DOM, > HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法? HTML::DOM我没用过,但是HTML::TreeBuilder就是用来解析HTML的,对于不标准的HTML文档应该也没问题。你可以看看HTML::Element的文档,那里说的更详细。 > > 在顺利安装完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模式。 Mech的主要功能应该是模拟POST,GET以及点击链接等操作的吧。 有本叫Spidering Hacks的书里面讲的更详细,讲了关于网络爬虫和网页解析的很多模块,写的很不错。网上应该有电子版的。 > > 但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM则完美的支持DOM里的一切。 > > 虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编译都成功,而make > test却无法通过? 尽管在configure的时候,并没有发现缺少哪个模块。 > > Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复! > > rorot > > 在07-11-25,Qiang ( James ) Li 写道: > > > 我对这个不在行,但看到过不少关于此类的信息,给你发过来做参考吧,只是不知 > > 是否有用。 :) > > > > 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 > > > http://mail.pm.org/mailman/listinfo/china-pm > > _______________________________________________ > > China-pm mailing list > > China-pm at pm.org > > http://mail.pm.org/mailman/listinfo/china-pm > > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > From zhuzhu at perlchina.org Sun Nov 25 23:43:09 2007 From: zhuzhu at perlchina.org (Zhu Zhu) Date: Mon, 26 Nov 2007 15:43:09 +0800 Subject: [PerlChina] =?utf-8?b?6K+35pyL5Y+L5LuL57uN5LiA5Liq5bm/5bee55qE?= =?utf-8?b?cGVybC9MaW51eC9waHDlt6XkvZw=?= Message-ID: <474A790D.4050202@perlchina.org> 大家好: 请大家介绍一个广州的perl/Linux/php工作。谢谢。 From yang.liana at gmail.com Mon Nov 26 07:55:20 2007 From: yang.liana at gmail.com (rorot) Date: Mon, 26 Nov 2007 23:55:20 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> Message-ID: <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> 谢谢诸位, 特别是Qiang, jzhang的热心解答! 我之于Mechanize模块的尝试,实际是出于兴趣。因为对Javascript较熟悉,以前用HTML::TreeBuilder模块时,虽然也可以达到解析HTML文档之目的,然终究想用一套和DOM类似的接口来操作HTML Syntax Document。 事实上,若要模仿浏览器行为,我想WWW::*模块足以胜任。如jzhang提到的,Mechanize主要提供的是模拟浏览器行为的功能。那么在这里我的疑惑是: 既然有了WWW::*诸如此类模块,那么WWW::Mechanize, Mozilla::Mechanize存在的目的是什么?我唯一能说服的就是他们提供了和DOM类似的接口。使用起来更熟悉。诸位如何看? 下面附上Mozilla::Mechanize的make test输出结果。在make test失败的情况下,我强制make install,然后编写了测试Mozilla::Mechanize的代码,运行后脚本崩溃, 提示段错误。 Failed 7/8 tests, 12.50% okay Failed Test Stat Wstat Total Fail List of Failed ------------------------------------------------------------------------------- t/00-props.t 0 139 11 20 2-11 t/01-construct.t 0 139 13 24 2-13 t/02-ct.t 0 139 20 38 2-20 t/basic.t 0 139 12 22 2-12 t/field.t 0 139 12 22 2-12 t/find_link.t 0 139 60 118 2-60 t/formbasics.t 0 139 33 64 2-33 t/frames.t 0 139 9 16 2-9 t/image-parse.t 0 139 20 38 2-20 t/jstest.t 0 139 4 6 2-4 t/select.t 0 139 26 50 2-26 t/swaplist.t 0 139 25 48 2-25 t/tick.t 0 139 8 14 2-8 2 tests skipped. Failed 13/15 test scripts. 240/253 subtests failed. Files=15, Tests=253, 4 wallclock secs ( 1.97 cusr + 0.27 csys = 2.24 CPU) Failed 13/15 test programs. 240/253 subtests failed. make: *** [test] Error 255 rorot at rorot-laptop:~/.cpan/build/Mozilla-Mechanize-0.05$ ------------------------------------------------------------------------------------------------ 另: 这里有一个返回引用的问题,我一直疑惑,请教诸位。 在我的一个package里,我这么写道: sub new { my $class = shift; my $self = {@_}; bless ($self, $class); $self->_init; return $self; } sub _init { my $self = shift; #return if (exists %$self{'dbh'}); $self->{'dbh'} = DBI->connect($DBD, $username, $password) || die "Connect Database Error"; $self->{'dbh'}->{unicode} = 0; } sub DESTROY { my $self = shift; $self->{'dbh'}->disconnect if $self->{'dbh'}; } sub dbh { my $self = shift; return $self->{'dbh'}; } ------------------------------------------------------------------------------------------------- 其中的dbh()方法,是我为了在别的方法里调用方便时写的。比如在该pakeage的其他方法里,我可以这么调用dbh: $self->dbh->query($query); 但问题是,我不知道在sub dbh()方法里return $self->{'dbh'}, 是不是又临时拷贝了一份dbh对象,还是直接返回了dbh对象的引用(不是指针). 我这样写的dbh()方法,是否有多生成临时对象的嫌疑? 或者为了方便在别的函数里使用$self->dbh->method的形式,而又更好的撰写dbh()函数的途径?( 主要是为了避免临时对象的生成,不知道在perl里面是如何处理的?) 实质上,我对perl对象的引用和指针一直混淆不清。有诸位解释一下吗?期待回复。 rorot 在07-11-26,jzhang 写道: > > > 谢谢Qiang的指点! > > > > HTML::DOM, > > > HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法? > > > HTML::DOM我没用过,但是HTML::TreeBuilder就是用来解析HTML的,对于不标准的HTML文档应该也没问题。你可以看看HTML::Element的文档,那里说的更详细。 > > > > > > 在顺利安装完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模式。 > > Mech的主要功能应该是模拟POST,GET以及点击链接等操作的吧。 > 有本叫Spidering Hacks的书里面讲的更详细,讲了关于网络爬虫和网页解析的很多模块,写的很不错。网上应该有电子版的。 > > > > > 但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM则完美的支持DOM里的一切。 > > > > > 虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编译都成功,而make > > test却无法通过? 尽管在configure的时候,并没有发现缺少哪个模块。 > > > > Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复! > > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071126/5560576c/attachment-0001.html From jzhang533 at gmail.com Mon Nov 26 18:15:08 2007 From: jzhang533 at gmail.com (jzhang) Date: Tue, 27 Nov 2007 10:15:08 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> Message-ID: On Nov 26, 2007 11:55 PM, rorot wrote: > 谢谢诸位, 特别是Qiang, jzhang的热心解答! > > 我之于Mechanize模块的尝试,实际是出于兴趣。因为对Javascript较熟悉,以前用HTML::TreeBuilder模块时,虽然也可以达到解析HTML文档之目的,然终究想用一套和DOM类似的接口来操作HTML > Syntax Document。 > > 事实上,若要模仿浏览器行为,我想WWW::*模块足以胜任。如jzhang提到的, > Mechanize主要提供的是模拟浏览器行为的功能。那么在这里我的疑惑是: 既然有了WWW::*诸如此类模块,那么WWW::Mechanize, > Mozilla::Mechanize存在的目的是什么?我唯一能说服的就是他们提供了和DOM类似的接口。使用起来更熟悉。诸位如何看? > > 下面附上Mozilla::Mechanize的make test输出结果。在make test失败的情况下,我强制make > install,然后编写了测试Mozilla::Mechanize的代码,运行后脚本崩溃, 提示段错误。 > > Failed 7/8 tests, 12.50% okay > Failed Test Stat Wstat Total Fail List of Failed > ------------------------------------------------------------------------------- > t/00-props.t 0 139 11 20 2-11 > t/01-construct.t 0 139 13 24 2-13 > t/02-ct.t 0 139 20 38 2-20 > t/basic.t 0 139 12 22 2-12 > t/field.t 0 139 12 22 2-12 > t/find_link.t 0 139 60 118 2-60 > t/formbasics.t 0 139 33 64 2-33 > t/frames.t 0 139 9 16 2-9 > t/image-parse.t 0 139 20 38 2-20 > t/jstest.t 0 139 4 6 2-4 > t/select.t 0 139 26 50 2-26 > t/swaplist.t 0 139 25 48 2-25 > t/tick.t 0 139 8 14 2-8 > 2 tests skipped. > Failed 13/15 test scripts. 240/253 subtests failed. > Files=15, Tests=253, 4 wallclock secs ( 1.97 cusr + 0.27 csys = 2.24 > CPU) > Failed 13/15 test programs. 240/253 subtests failed. > make: *** [test] Error 255 > rorot at rorot-laptop:~/.cpan/build/Mozilla-Mechanize-0.05$ > > ------------------------------------------------------------------------------------------------ > 另: 这里有一个返回引用的问题,我一直疑惑,请教诸位。 > 在我的一个package里,我这么写道: > > sub new { > my $class = shift; > my $self = {@_}; > bless ($self, $class); > $self->_init; > return $self; > } > > sub _init { > my $self = shift; > #return if (exists %$self{'dbh'}); > $self->{'dbh'} = DBI->connect($DBD, $username, $password) || die > "Connect Database Error"; > $self->{'dbh'}->{unicode} = 0; > } > > sub DESTROY { > my $self = shift; > $self->{'dbh'}->disconnect if $self->{'dbh'}; > } > > sub dbh { > my $self = shift; > return $self->{'dbh'}; > } > ------------------------------------------------------------------------------------------------- > > 其中的dbh()方法,是我为了在别的方法里调用方便时写的。比如在该pakeage的其他方法里,我可以这么调用dbh: > $self->dbh->query($query); > > 但问题是,我不知道在sub dbh()方法里return $self->{'dbh'}, > 是不是又临时拷贝了一份dbh对象,还是直接返回了dbh对象的引用(不是指针). 我这样写的dbh()方法,是否有多生成临时对象的嫌疑? > 或者为了方便在别的函数里使用$self->dbh->method的形式,而又更好的撰写dbh()函数的途径?( > 主要是为了避免临时对象的生成,不知道在perl里面是如何处理的?) > > 实质上,我对perl对象的引用和指针一直混淆不清。有诸位解释一下吗?期待回复。 还是引用啊,因为connect返回的是一个perl 的object,实际上就是一个bless过的hash的引用,所以这里返回去的还是引用。 可以试试看Class::DBI模块,比你这样硬写DBI的connect, prepare, execute方便很多。 > > rorot > > > 在07-11-26,jzhang 写道: > > > 谢谢Qiang的指点! > > > > > > HTML::DOM, > > > > HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法? > > > > > HTML::DOM我没用过,但是HTML::TreeBuilder就是用来解析HTML的,对于不标准的HTML文档应该也没问题。你可以看看HTML::Element的文档,那里说的更详细。 > > > > > > > > > 在顺利安装完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模式。 > > > > Mech的主要功能应该是模拟POST,GET以及点击链接等操作的吧。 > > 有本叫Spidering Hacks的书里面讲的更详细,讲了关于网络爬虫和网页解析的很多模块,写的很不错。网上应该有电子版的。 > > > > > > > > 但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM则完美的支持DOM里的一切。 > > > > > > > 虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编译都成功,而make > > > test却无法通过? 尽管在configure的时候,并没有发现缺少哪个模块。 > > > > > > Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复! > > > > > > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm > From shijialee at gmail.com Mon Nov 26 20:04:36 2007 From: shijialee at gmail.com (Qiang ( James ) Li) Date: Mon, 26 Nov 2007 23:04:36 -0500 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> Message-ID: <474B9754.4030509@gmail.com> rorot wrote: > 谢谢诸位, 特别是Qiang, jzhang的热心解答! > > 我之于Mechanize模块的尝试,实际是出于兴趣。因为对Javascript较熟悉,以前 > 用HTML::TreeBuilder模块时,虽然也可以达到解析HTML文档之目的,然终究想用 > 一套和DOM类似的接口来操作HTML Syntax Document。 > > 事实上,若要模仿浏览器行为,我想WWW::*模块足以胜任。如jzhang提到的, > Mechanize主要提供的是模拟浏览器行为的功能。那么在这里我的疑惑是: 既然有 > 了WWW::*诸如此类模块,那么WWW::Mechanize, Mozilla::Mechanize存在的目的是 > 什么?我唯一能说服的就是他们提供了和DOM类似的接口。使用起来更熟悉。诸位 > 如何看? > TIMTOWTDI.. :) Mozilla::Mechanize - Like WWW::Mechanize but using Gtk2::MozEmbed > 下面附上Mozilla::Mechanize的make test输出结果。在make test失败的情况下, > 我强制make install,然后编写了测试Mozilla::Mechanize的代码,运行后脚本崩 > 溃, 提示段错误。 > > Failed 7/8 tests, 12.50% okay > Failed Test Stat Wstat Total Fail List of Failed > ------------------------------------------------------------------------------- > t/00-props.t 0 139 11 20 2-11 > t/01-construct.t 0 139 13 24 2-13 > t/02-ct.t 0 139 20 38 2-20 > t/basic.t 0 139 12 22 2-12 > t/field.t 0 139 12 22 2-12 > t/find_link.t 0 139 60 118 2-60 > t/formbasics.t 0 139 33 64 2-33 > t/frames.t 0 139 9 16 2-9 > t/image-parse.t 0 139 20 38 2-20 > t/jstest.t 0 139 4 6 2-4 > t/select.t 0 139 26 50 2-26 > t/swaplist.t 0 139 25 48 2-25 > t/tick.t 0 139 8 14 2-8 > 2 tests skipped. > Failed 13/15 test scripts. 240/253 subtests failed. > Files=15, Tests=253, 4 wallclock secs ( 1.97 cusr + 0.27 csys = 2.24 CPU) > Failed 13/15 test programs. 240/253 subtests failed. > make: *** [test] Error 255 > rorot at rorot-laptop:~/.cpan/build/Mozilla-Mechanize-0.05$ > :( 帮不了什么忙。。 > ------------------------------------------------------------------------------------------------ > 另: 这里有一个返回引用的问题,我一直疑惑,请教诸位。 > 在我的一个package里,我这么写道: > > sub new { > my $class = shift; > my $self = {@_}; > bless ($self, $class); > $self->_init; > return $self; > } > > sub _init { > my $self = shift; > #return if (exists %$self{'dbh'}); > $self->{'dbh'} = DBI->connect($DBD, $username, $password) || die > "Connect Database Error"; > $self->{'dbh'}->{unicode} = 0; > } > > sub DESTROY { > my $self = shift; > $self->{'dbh'}->disconnect if $self->{'dbh'}; > } > > sub dbh { > my $self = shift; > return $self->{'dbh'}; > } > ------------------------------------------------------------------------------------------------- > > 其中的dbh()方法,是我为了在别的方法里调用方便时写的。比如在该pakeage的其 > 他方法里,我可以这么调用dbh: $self->dbh->query($query); > > 但问题是,我不知道在sub dbh()方法里return $self->{'dbh'}, 是不是又临时拷 > 贝了一份dbh对象,还是直接返回了dbh对象的引用(不是指针). 我这样写的dbh > ()方法,是否有多生成临时对象的嫌疑? 或者为了方便在别的函数里使用$self-> > dbh->method的形式,而又更好的撰写dbh()函数的途径?( 主要是为了避免临时对 > 象的生成,不知道在perl里面是如何处理的?) > 引用。dbh() 返回的还是 new 对象时生成的 dbh. 我一般在每一个 project 里有 一个简单的 DB.pm 只是返回 dbh 或 DBIx::Simple 的 object. 在 mod_perl 下我用 DBI 的 connect_cached 而不是 connect, 作用类似于 Apache::DBI. Qiang From hylinux at gmail.com Tue Nov 27 00:18:27 2007 From: hylinux at gmail.com (=?GB2312?B?u8bStg==?=) Date: Tue, 27 Nov 2007 16:18:27 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <474B9754.4030509@gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> <474B9754.4030509@gmail.com> Message-ID: <74646cb40711270018q37b6df8aya1a2f99effc4aeb2@mail.gmail.com> 帮不上忙。 但是提醒一下。 HTML::TreeBuild好像有编码方面的问题。 我以前用这个来解析html的时候好像存在一个编码方面的bug. 导致中文不能正常的解析。 不过是有一段时间了。 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.pm.org/pipermail/china-pm/attachments/20071127/6ed194f8/attachment.html From cnhacktnt at gmail.com Tue Nov 27 02:30:36 2007 From: cnhacktnt at gmail.com (cnhack TNT) Date: Tue, 27 Nov 2007 18:30:36 +0800 Subject: [PerlChina] =?gb2312?b?cGVybL3izvZIVE1MtKbA7bPJRE9NttTP87XEtKY=?= =?gb2312?b?wO0=?= In-Reply-To: <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> References: <3aac2b3b0711240256h78a764feq8cd7dc423d7995ec@mail.gmail.com> <4749176D.9010406@gmail.com> <3aac2b3b0711250054u376dc81fte6071d59d71c4f7b@mail.gmail.com> <3aac2b3b0711260755h64dc0122m60e65692832468da@mail.gmail.com> Message-ID: Mozilla::DOM 依赖 XPCOM, 在 ubuntu 上只要安装 firefox-dev 即可: sudo apt-get install firefox-dev 然后,请依次安装如下模块,应该会比较顺利: ExtUtils::Depends ExtUtils::PkgConfig Mozilla::DOM ------ Mozilla::Mechanize 依赖 Gtk2::MozEmbed 模块,而 Gtk2::MozEmbed 需要 libgtk2.0-dev,所以安装之: sudo apt-get install libgtk2.0-dev 但不幸的是,似乎 Mozilla::Mechanize 本身有些问题,在解决所有依赖后仍然不能通过 make test, 强制安装后运行程序仍然会 Segmentation fault :-(, 也许你可以给作者发个 bug report. 不过 Mozilla::DOM 没有问题。 此外,若要控制浏览器行为,进行自动化测试的话,Selenium 会是不错的选择 参考:http://www.openqa.org/selenium/ Perl 也有相应的模块: WWW::Selenium Enjoy! :-) On Nov 26, 2007 11:55 PM, rorot wrote: > 谢谢诸位, 特别是Qiang, jzhang的热心解答! > > 我之于Mechanize模块的尝试,实际是出于兴趣。因为对Javascript较熟悉,以前用HTML::TreeBuilder模块时,虽然也可以达到解析HTML文档之目的,然终究想用一套和DOM类似的接口来操作HTML > Syntax Document。 > > 事实上,若要模仿浏览器行为,我想WWW::*模块足以胜任。如jzhang提到的, > Mechanize主要提供的是模拟浏览器行为的功能。那么在这里我的疑惑是: 既然有了WWW::*诸如此类模块,那么WWW::Mechanize, > Mozilla::Mechanize存在的目的是什么?我唯一能说服的就是他们提供了和DOM类似的接口。使用起来更熟悉。诸位如何看? > > 下面附上Mozilla::Mechanize的make test输出结果。在make test失败的情况下,我强制make > install,然后编写了测试Mozilla::Mechanize的代码,运行后脚本崩溃, 提示段错误。 > > Failed 7/8 tests, 12.50% okay > Failed Test Stat Wstat Total Fail List of Failed > ------------------------------------------------------------------------------- > t/00-props.t 0 139 11 20 2-11 > t/01-construct.t 0 139 13 24 2-13 > t/02-ct.t 0 139 20 38 2-20 > t/basic.t 0 139 12 22 2-12 > t/field.t 0 139 12 22 2-12 > t/find_link.t 0 139 60 118 2-60 > t/formbasics.t 0 139 33 64 2-33 > t/frames.t 0 139 9 16 2-9 > t/image-parse.t 0 139 20 38 2-20 > t/jstest.t 0 139 4 6 2-4 > t/select.t 0 139 26 50 2-26 > t/swaplist.t 0 139 25 48 2-25 > t/tick.t 0 139 8 14 2-8 > 2 tests skipped. > Failed 13/15 test scripts. 240/253 subtests failed. > Files=15, Tests=253, 4 wallclock secs ( 1.97 cusr + 0.27 csys = 2.24 > CPU) > Failed 13/15 test programs. 240/253 subtests failed. > make: *** [test] Error 255 > rorot at rorot-laptop:~/.cpan/build/Mozilla-Mechanize-0.05$ > > ------------------------------------------------------------------------------------------------ > 另: 这里有一个返回引用的问题,我一直疑惑,请教诸位。 > 在我的一个package里,我这么写道: > > sub new { > my $class = shift; > my $self = {@_}; > bless ($self, $class); > $self->_init; > return $self; > } > > sub _init { > my $self = shift; > #return if (exists %$self{'dbh'}); > $self->{'dbh'} = DBI->connect($DBD, $username, $password) || die > "Connect Database Error"; > $self->{'dbh'}->{unicode} = 0; > } > > sub DESTROY { > my $self = shift; > $self->{'dbh'}->disconnect if $self->{'dbh'}; > } > > sub dbh { > my $self = shift; > return $self->{'dbh'}; > } > ------------------------------------------------------------------------------------------------- > > 其中的dbh()方法,是我为了在别的方法里调用方便时写的。比如在该pakeage的其他方法里,我可以这么调用dbh: > $self->dbh->query($query); > > 但问题是,我不知道在sub dbh()方法里return $self->{'dbh'}, > 是不是又临时拷贝了一份dbh对象,还是直接返回了dbh对象的引用(不是指针). 我这样写的dbh()方法,是否有多生成临时对象的嫌疑? > 或者为了方便在别的函数里使用$self->dbh->method的形式,而又更好的撰写dbh()函数的途径?( > 主要是为了避免临时对象的生成,不知道在perl里面是如何处理的?) > > 实质上,我对perl对象的引用和指针一直混淆不清。有诸位解释一下吗?期待回复。 > > rorot > > > 在07-11-26,jzhang 写道: > > > 谢谢Qiang的指点! > > > > > > HTML::DOM, > > > > HTML::TreeBuilder我都测试过,在我看来,这些模块侧重于建立一个DOM模型,而不侧重解析一个HTML的(标准或者不标准的)文档。诸位看法? > > > > > HTML::DOM我没用过,但是HTML::TreeBuilder就是用来解析HTML的,对于不标准的HTML文档应该也没问题。你可以看看HTML::Element的文档,那里说的更详细。 > > > > > > > > > 在顺利安装完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模式。 > > > > Mech的主要功能应该是模拟POST,GET以及点击链接等操作的吧。 > > 有本叫Spidering Hacks的书里面讲的更详细,讲了关于网络爬虫和网页解析的很多模块,写的很不错。网上应该有电子版的。 > > > > > > > > 但也有不足之处。至少WWW::Mechanize缺少了DOM里的Event支持。而Mozilla::DOM则完美的支持DOM里的一切。 > > > > > > > 虽然Mozilla::Mechanize的运行,需要GTK2的支持,但是因为其对DOM的完美支持,我还是倾向于最终使用此模块。但问题是,为什么我的Mozilla::Mechanize编译都成功,而make > > > test却无法通过? 尽管在configure的时候,并没有发现缺少哪个模块。 > > > > > > Qiang推荐的WEB::Scraper我等于会去看一下。谢谢你的回复! > > > > > > > _______________________________________________ > China-pm mailing list > China-pm at pm.org > http://mail.pm.org/mailman/listinfo/china-pm >