2009年3月28日星期六

[PerlChina] Re: Firefox JS 版 X Hunter 抽取器与 Perl VDOM.pm 抽取器的性能对比 (Was Re: 寻 WWW::Baidu 的维护者)

2009/3/29 agentzh <agentzh@gmail.com>
浏览器核心是生产者,将其内部的 DOM 树“串行化”为 VDOM 格式的 dump 文件;

呃。。。serialize 这个词在中文中似乎译作“序列化”更好一些。。。呵呵。。。


然后,在 Perl 脚本中可以直接加载这个 VDOM 文件然后享受 JavaScript 的那些 DOM 特权:

use VDOM;

my $infile = "test.vdom";
open my $in, $infile or
    die "Can't open $infile for reading: $!\n";
my $win = VDOM::Window->new->parse_file($in);

对于 sina 首页,生成的 test.vdom 文件的大小为 275 KB,而 sina 首页自身的 HTML 大小为 380 KB (是的,还不包括其包含的那些外部 CSS 代码)。VDOM.pm 加载这个 test.vdom 在我机器上的用时为 450 ms(呵呵,是的,sina 首页有点儿大了 :P)


在 Firefox 3.1b3pre 中用 JS 遍历 sina 首页的 DOM 生成 VDOM 串,在我的 Pentinum 4 的台机上需要 2.3 sec,

s/Pentinum/Pentium/ :P
 
Thanks!
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Firefox JS 版 X Hunter 抽取器与 Perl VDOM.pm 抽取器的性能对比 (Was Re: 寻 WWW::Baidu 的维护者)

2009/3/26 Question <wanliyou@gmail.com>:
>  
> 抱歉,可能还没有完全理解你的List
> Hunter是怎么工作的,另外VDOM和它是什么关系呢?

浏览器核心是生产者,将其内部的 DOM 树“串行化”为 VDOM 格式的 dump 文件;各个 hunter 抽取器是消费者,将 VDOM 格式的数据文件在其自己的进程空间中还原出 DOM。

> 后面看到了VDOM是自定的格式,那是怎么生成的呢?有没有一个简短的例子,这样比较好理解?
>  

下面有一个来自 Comment Hunter 测试集的 VDOM 文件的小例子(为了方便放在这里,经过了大量裁剪:

 window location="http://foo.bar.com/index.php?tid=2274591" innerHeight=802 innerWidth=929 outerHeight=943 outerWidth=1272 {
     document width=914 height=5119 {
         BODY offsetX=0 offsetY=0 offsetWidth=914 offsetHeight=5119 fontFamily="Helvetica,Arial,sans-serif" fontSize="12px" fontStyle="normal" fontWeight="400" color="rgb(0, 0, 0)" backgroundColor="rgb(255, 255, 255)" {
                 DIV id="append_parent" offsetX=0 offsetY=0 offsetHeight=0 backgroundColor="transparent" {
                     "首页\n\n"
                     FONT color="rgb(255, 0, 0)" {
                         B fontWeight="401" {
                             "购物"
                         }
                     }
                 }
         }
      }
  }

然后,在 Perl 脚本中可以直接加载这个 VDOM 文件然后享受 JavaScript 的那些 DOM 特权:

use VDOM;

my $infile = "test.vdom";
open my $in, $infile or
    die "Can't open $infile for reading: $!\n";
my $win = VDOM::Window->new->parse_file($in);
my $body = $win->document->body;
for my $child ($body->childNodes) {
     warn $child->tagName;
     warn $child->offsetX;
     warn $child->offsetHeight;
     warn $child->color;
     warn $child->fontFamily;
     warn $child->nextSibling;
     warn $child->previousElementSibling; # This is Firefox 3.1 DOM method ;)
     warn $child->parentNode;
     warn join ' ', map { $_->textContent } $child->getElmenetsByTagName("A");
}


>
> 同意,现在的JS方面也有一些工作使得以后能直接trace into DOM,这样这个瓶颈应该可以被慢慢干掉了,但不是现在.


期待 Firefox 能够越来越快 ;) 不过我们已经在向 Webkit 迁移了,呵呵。

>
> 难道没有用c的库?


我在编写 VDOM.pm 的过程中还是把实现代码的简洁性和正确性放在了比性能更高的位置上,目的是在不远的未来逐行地转码为 C++ 代码(虽然纯 C 也是可能的,但在 DOM 编程的上下文中,似乎 OO 的记法更占些便宜,呵呵)。libvdom 和 libvdom++ 一直在我的 TODO 列表的优先级不算低的位置上 ;) 当然如果未来 VDOM.pm 开源后,欢迎有志之士用 XS 让之跑得更快一些,呵呵。

>
> 那我的理解就是:由于JS->DOM的操作慢是瓶颈了?


我的回答是“很有可能” ;)

>
> 比较有兴趣知道大概是怎么个格式怎么导出?


经典的深度优先遍历每一个 DOM 节点(Text node 和 Element node,遇到 iframe/frame node 再递归地编历其 contentWindow 结构)。

>
> 每个element都要去算一遍样式不是比较费时么?是把页面渲染后的DOM文本化么?


在 JavaScript 中做确实比较费时。在 Firefox 3.1b3pre 中用 JS 遍历 sina 首页的 DOM 生成 VDOM 串,在我的 Pentinum 4 的台机上需要 2.3 sec,而相同的 JS 在 qt-webkit 中导出类似的 VDOM 串只需要 230 ms (是的,刚好相差一个数量级!)。我同学兼同事 xunxin++ 用 C++ 在 qt-webkit 中改写了那段 JS 之后,性能没有明显提升,大约只快了 10 ~ 20 ms 的程度,所以证明 DOM 操作本身是比较慢的,而非 JS。他现在正在优化 VDOM 生成代码,改用 StringBuffer 而非不断地自底向上的拼串来生成最终的 VDOM 串,我期待性能会有戏剧性的变化(在 JS 版本中,我也曾尝试用 string array 来模拟 String Buffer,最后再一起 join 成最终的串,但优化效果不明显)。

> Well, 不明白怎么脱离Firefox了,自己分析DOM?
> 可能我有些背景信息不是很清楚,部分东西没法跟上你了,呵呵


希望我前面的解释足够精楚了,呵呵。

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 发现了一个和 Haskell 的 Parsec 工作方式类似的 Perl Module

2009/3/28 flw <su2admin@gmail.com>:
> http://search.cpan.org/~gslondon/Parse-Gnaw-0.40/
>
> 去年新出的模块,估计很多人还不知道。
> 看上去很不错的样子,希望能越做越好。
>

呵呵,确实挺有趣的,把 perl sub 当 combinator 来叠加了 ;)

Thanks!
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 新人请教一个perl的问题

TMTOWTDI

s/(\d*)-([^<]*)/$2-$1/

2009/3/29 purl lamp <lamp.purl@gmail.com>:
> 5.10 还可以用命名捕获:
> $abc=~/(?<year>\d{4})-(?<md>\d{2}-\d{2})/ && print "$+{md}-$+{year}"
>
>
> 2009/3/28 figee <wuuter@gmail.com>
>>
>> 可以试下这个:
>> $a = "<date>1999-02-25</date>";
>> $a =~ s/(\d{4})-(\d{2}-\d{2})/$2-$1/;
>> print $a;
>>
>> xsir317 写道:
>> > 这个应该是可以的。。。
>> >
>> > 彦一 さん可以去看看一些语法入门的书。我上次似乎发过一本 Perl语言入门(第四版).pdf
>> >
>> > 2009-03-28
>> >
>> >
>> >
>> > xsir317
>> >
>> >
>> >
>> > 发件人: xjdengz
>> > 发送时间: 2009-03-28  12:36:36
>> > 收件人: perlchina
>> > 抄送:
>> > 主题: [PerlChina] Re: 新人请教一个perl的问题
>> >
>> > try:
>> > s/(\d{4})-(\d{2})-(\d{2})/$2-$3-$1/;
>> > 2009/3/28 彦一 <kevin_dbcooper@yahoo.com.cn>:
>> > >
>> > > 请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:
>> > >
>> > > Here's the PERL syntax of string substitution:
>> > > VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/
>> > >
>> > > For instance,
>> > > $a = 'abc';
>> > > $a =~ s/a/1/; # $a is now '1bc'
>> > >
>> > > Here's the question:
>> > > write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
>> > > that
>> > > "<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
>> > > and
>> > > "<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
>> > > >
>> > >
>>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 新人请教一个perl的问题

5.10 还可以用命名捕获:
$abc=~/(?<year>\d{4})-(?<md>\d{2}-\d{2})/ && print "$+{md}-$+{year}"


2009/3/28 figee <wuuter@gmail.com>
可以试下这个:
$a = "<date>1999-02-25</date>";
$a =~ s/(\d{4})-(\d{2}-\d{2})/$2-$1/;
print $a;

xsir317 写道:
> 这个应该是可以的。。。
>
> 彦一 さん可以去看看一些语法入门的书。我上次似乎发过一本 Perl语言入门(第四版).pdf
>
> 2009-03-28
>
>
>
> xsir317
>
>
>
> 发件人: xjdengz
> 发送时间: 2009-03-28  12:36:36
> 收件人: perlchina
> 抄送:
> 主题: [PerlChina] Re: 新人请教一个perl的问题
>
> try:
> s/(\d{4})-(\d{2})-(\d{2})/$2-$3-$1/;
> 2009/3/28 彦一 <kevin_dbcooper@yahoo.com.cn>:
> >
> > 请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:
> >
> > Here's the PERL syntax of string substitution:
> > VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/
> >
> > For instance,
> > $a = 'abc';
> > $a =~ s/a/1/; # $a is now '1bc'
> >
> > Here's the question:
> > write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
> > that
> > "<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
> > and
> > "<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
> > >
> >



--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: intro odesk

sorry, my mistake, anyway odesk's free perl testing is still worthy 10 minutes time.

2009/3/29 Luo, Yong <Yong.Luo@acs-inc.com>

 

=>>>

Location   North America

We would prefer someone in the NY city, CT, NJ, or MA area. Or someone within 3hrs from NYC.

<<<=

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of purl lamp
Sent: Saturday, March 28, 2009 4:36 PM
To: perlchina
Subject: [PerlChina] intro odesk

 

http://www.odesk.com/jobs/Senior-Perl-XML-developer_~~f3213aaa5d0f183e

odesk 注册了帐号一周以后,等到这个工作机会,大家有兴趣的话可以去尝试一下。





--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: intro odesk

 

=>>>

Location   North America

We would prefer someone in the NY city, CT, NJ, or MA area. Or someone within 3hrs from NYC.

<<<=

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of purl lamp
Sent: Saturday, March 28, 2009 4:36 PM
To: perlchina
Subject: [PerlChina] intro odesk

 

http://www.odesk.com/jobs/Senior-Perl-XML-developer_~~f3213aaa5d0f183e

odesk 注册了帐号一周以后,等到这个工作机会,大家有兴趣的话可以去尝试一下。


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 新人请教一个perl的问题

可以试下这个:
$a = "<date>1999-02-25</date>";
$a =~ s/(\d{4})-(\d{2}-\d{2})/$2-$1/;
print $a;

xsir317 写道:
> 这个应该是可以的。。。
>
> 彦一 さん可以去看看一些语法入门的书。我上次似乎发过一本 Perl语言入门(第四版).pdf
>
> 2009-03-28
>
>
>
> xsir317
>
>
>
> 发件人: xjdengz
> 发送时间: 2009-03-28 12:36:36
> 收件人: perlchina
> 抄送:
> 主题: [PerlChina] Re: 新人请教一个perl的问题
>
> try:
> s/(\d{4})-(\d{2})-(\d{2})/$2-$3-$1/;
> 2009/3/28 彦一 <kevin_dbcooper@yahoo.com.cn>:
> >
> > 请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:
> >
> > Here's the PERL syntax of string substitution:
> > VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/
> >
> > For instance,
> > $a = 'abc';
> > $a =~ s/a/1/; # $a is now '1bc'
> >
> > Here's the question:
> > write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
> > that
> > "<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
> > and
> > "<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
> > >
> >
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] intro odesk

http://www.odesk.com/jobs/Senior-Perl-XML-developer_~~f3213aaa5d0f183e

在 odesk 注册了帐号一周以后,等到这个工作机会,大家有兴趣的话可以去尝试一下。

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 关于脚本批量部署

这个模块上次聚会孙海军讲过,还能包办完成C 语言相关的部署。

2009/3/27 Yuan Jiang <sleetdrop@gmail.com>

http://search.cpan.org/~sunnavy/Shipwright-2.1.5/lib/Shipwright.pm


2009/3/27 Luo, Yong <Yong.Luo@acs-inc.com>

 

只能到rpmfind.net上找那个版本的安装文件了,然后解压缩,重新打包,但是跑的时候难保不出问题,只能一点点调。

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of xuanfei
Sent: Thursday, March 26, 2009 10:08 PM
To: perlchina@googlegroups.com
Subject: [PerlChina]
关于脚本批量部署

 

脚本批量发布到其他机器但是一些机器没安装对应模块 我现在是用pp 打包发布,但是近来遇到问题版本兼容问题(在Centos4.X Centos5.X下都存在问题)。不知朋友们有其他好方法没?


--
祝你
天天天蓝:)






--
姜源
Yuan Jiang
http://blog.vetcafe.net





--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 4月北京 Perl 小组聚会主题

qiang is good at DBIx::Simple,多年之前就给我推荐过这个模块,所以他来讲也是非常合适的。

2009/3/27 Qiang (James) <shijialee@gmail.com>
On Mar 27, 11:09 am, rorot <yang.li...@gmail.com> wrote:
> 讲讲模式设计吧,编程思想方面的。
>

hmm,你是在提议别人讲还是自告奋勇 :-)

> On Friday 27 March 2009 10:48:47 Qiang (James) wrote:> agentzh wrote:
> > > 2009/3/13 Qiang (James) <shijia...@gmail.com
>
> <mailto:shijia...@gmail.com>>:
>
> > >  > 有主题的朋友赶快出来晒一下吧!
>
> > > 呵呵,我有许多(小)主题,大家可以多提意见和建议哈:
>
> > # 使用 Test::Base 自动化测试任何语言编写的程序(包括 JavaScript 代码)
> > # VDOM.pm - 使用纯 Perl 操纵 Firefox/WebKit 构建的 HTML DOM
>
> > 我个人就挑上面两个啦。每个演讲大概 15-20分钟即可。
>
> > 我这里可以聊聊 DBIx::Simple 和其他一些东西。。
>
> > 其他人欢迎共享下。。。
>
> > Qiang(James)



--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

2009年3月27日星期五

[PerlChina] Re: 新人请教一个perl的问题

这个应该是可以的。。。
 
彦一 さん可以去看看一些语法入门的书。我上次似乎发过一本 Perl语言入门(第四版).pdf 
 
2009-03-28

xsir317

发件人: xjdengz
发送时间: 2009-03-28  12:36:36
收件人: perlchina
抄送:
主题: [PerlChina] Re: 新人请教一个perl的问题
try:
s/(\d{4})-(\d{2})-(\d{2})/$2-$3-$1/;
2009/3/28 彦一 <kevin_dbcooper@yahoo.com.cn>:
>
> 请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:
>
> Here's the PERL syntax of string substitution:
> VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/
>
> For instance,
> $a = 'abc';
> $a =~ s/a/1/; # $a is now '1bc'
>
> Here's the question:
> write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
> that
> "<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
> and
> "<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 新人请教一个perl的问题

try:
s/(\d{4})-(\d{2})-(\d{2})/$2-$3-$1/;

2009/3/28 彦一 <kevin_dbcooper@yahoo.com.cn>:
>
> 请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:
>
> Here's the PERL syntax of string substitution:
> VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/
>
> For instance,
> $a = 'abc';
> $a =~ s/a/1/; # $a is now '1bc'
>
> Here's the question:
> write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
> that
> "<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
> and
> "<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
> >
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] 新人请教一个perl的问题

请教各位英雄一个问题,麻烦解答下,谢谢了,题目如下:

Here's the PERL syntax of string substitution:
VARIABLE =~ s/SEARCH_PATTERN/NEW_STRING/

For instance,
$a = 'abc';
$a =~ s/a/1/; # $a is now '1bc'

Here's the question:
write a substitution statement(ie. s/SEARCH_PATTERN/NEW_STRING/) so
that
"<date>1999-02-25</date>" will be updated to "<date>02-25-1999</date>"
and
"<date>2005-11-03</date>" will be updated to "<date>11-03-2005</date>"
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] 发现了一个和 Haskell 的 Parsec 工作方式类似的 Perl Module

http://search.cpan.org/~gslondon/Parse-Gnaw-0.40/

去年新出的模块,估计很多人还不知道。
看上去很不错的样子,希望能越做越好。

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 关于脚本批量部署

http://search.cpan.org/~sunnavy/Shipwright-2.1.5/lib/Shipwright.pm


2009/3/27 Luo, Yong <Yong.Luo@acs-inc.com>

 

只能到rpmfind.net上找那个版本的安装文件了,然后解压缩,重新打包,但是跑的时候难保不出问题,只能一点点调。

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of xuanfei
Sent: Thursday, March 26, 2009 10:08 PM
To: perlchina@googlegroups.com
Subject: [PerlChina]
关于脚本批量部署

 

脚本批量发布到其他机器但是一些机器没安装对应模块 我现在是用pp 打包发布,但是近来遇到问题版本兼容问题(在Centos4.X Centos5.X下都存在问题)。不知朋友们有其他好方法没?


--
祝你
天天天蓝:)






--
姜源
Yuan Jiang
http://blog.vetcafe.net

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 4月北京 Perl 小组聚会主题

On Mar 27, 11:09 am, rorot <yang.li...@gmail.com> wrote:
> 讲讲模式设计吧,编程思想方面的。
>

hmm,你是在提议别人讲还是自告奋勇 :-)

> On Friday 27 March 2009 10:48:47 Qiang (James) wrote:> agentzh wrote:
> > > 2009/3/13 Qiang (James) <shijia...@gmail.com
>
> <mailto:shijia...@gmail.com>>:
>
> > > > 有主题的朋友赶快出来晒一下吧!
>
> > > 呵呵,我有许多(小)主题,大家可以多提意见和建议哈:
>
> > # 使用 Test::Base 自动化测试任何语言编写的程序(包括 JavaScript 代码)
> > # VDOM.pm - 使用纯 Perl 操纵 Firefox/WebKit 构建的 HTML DOM
>
> > 我个人就挑上面两个啦。每个演讲大概 15-20分钟即可。
>
> > 我这里可以聊聊 DBIx::Simple 和其他一些东西。。
>
> > 其他人欢迎共享下。。。
>
> > Qiang(James)
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

2009年3月26日星期四

[PerlChina] Re: 4月北京 Perl 小组聚会主题

讲讲模式设计吧,编程思想方面的。

On Friday 27 March 2009 10:48:47 Qiang (James) wrote:
> agentzh wrote:
> > 2009/3/13 Qiang (James) <shijialee@gmail.com
<mailto:shijialee@gmail.com>>:
> > > 有主题的朋友赶快出来晒一下吧!
> >
> > 呵呵,我有许多(小)主题,大家可以多提意见和建议哈:
>
> # 使用 Test::Base 自动化测试任何语言编写的程序(包括 JavaScript 代码)
> # VDOM.pm - 使用纯 Perl 操纵 Firefox/WebKit 构建的 HTML DOM
>
> 我个人就挑上面两个啦。每个演讲大概 15-20分钟即可。
>
> 我这里可以聊聊 DBIx::Simple 和其他一些东西。。
>
> 其他人欢迎共享下。。。
>
> Qiang(James)
>
>
>
>
>
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] 4月北京 Perl 小组聚会主题

agentzh wrote:
> 2009/3/13 Qiang (James) <shijialee@gmail.com <mailto:shijialee@gmail.com>>:
> >
> > 有主题的朋友赶快出来晒一下吧!
> >
>
> 呵呵,我有许多(小)主题,大家可以多提意见和建议哈:
>

# 使用 Test::Base 自动化测试任何语言编写的程序(包括 JavaScript 代码)
# VDOM.pm - 使用纯 Perl 操纵 Firefox/WebKit 构建的 HTML DOM

我个人就挑上面两个啦。每个演讲大概 15-20分钟即可。

我这里可以聊聊 DBIx::Simple 和其他一些东西。。

其他人欢迎共享下。。。

Qiang(James)

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: 关于脚本批量部署

 

只能到rpmfind.net上找那个版本的安装文件了,然后解压缩,重新打包,但是跑的时候难保不出问题,只能一点点调。

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of xuanfei
Sent: Thursday, March 26, 2009 10:08 PM
To: perlchina@googlegroups.com
Subject: [PerlChina]
关于脚本批量部署

 

脚本批量发布到其他机器但是一些机器没安装对应模块 我现在是用pp 打包发布,但是近来遇到问题版本兼容问题(在Centos4.X Centos5.X下都存在问题)。不知朋友们有其他好方法没?


--
祝你
天天天蓝:)


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

RE: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

我只看帖不回帖  J

 

感觉web论坛看着太累

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of wbi
Sent: Thursday, March 26, 2009 5:18 PM
To: perlchina@googlegroups.com
Subject: RE:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

估计只有我才用 这么奇怪的字母组合做名字
 
你在cu 叫什么啊?
 


Subject: RE: WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
Date: Thu, 26 Mar 2009 01:14:54 -0500
From: Yong.Luo@acs-inc.com
To: perlchina@googlegroups.com

 

CU上的hitsubunnu

 

兴会兴会   J

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of wbi
Sent: Tuesday, March 24, 2009 3:50 PM
To: perlchina@googlegroups.com
Subject: RE:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

刚申请的 github ID  hitsubunnu   emailhitsubunnu@gmail.com

谢了
 
> Date: Tue, 24 Mar 2009 10:44:32 +0800
> Subject: Re:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
> From: phio.asia@gmail.com
> To: perlchina@googlegroups.com
>
> 2009/3/23 wbi
<wbisearchina@hotmail.co.jp>:
> >
可以的话 加我一下
  我正想写个 WWW::Baidu::Mp3 的模块
> >
> >
CPAN id
  HITSU  hitsubunnu
>
欢迎欢迎:-) agent那边审阅通过了,我再把你加进github的提交者里面:-)
>
> --
> You should be the change you wish to see in the world
>
> </html


</html


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] 关于脚本批量部署

脚本批量发布到其他机器但是一些机器没安装对应模块 我现在是用pp 打包发布,但是近来遇到问题版本兼容问题(在Centos4.X 和Centos5.X下都存在问题)。不知朋友们有其他好方法没?


--
祝你
天天天蓝:)

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

RE: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

估计只有我才用 这么奇怪的字母组合做名字
 
你在cu 叫什么啊?
 

Subject: RE: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
Date: Thu, 26 Mar 2009 01:14:54 -0500
From: Yong.Luo@acs-inc.com
To: perlchina@googlegroups.com

 

CU上的hitsubunnu

 

兴会兴会   J

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of wbi
Sent: Tuesday, March 24, 2009 3:50 PM
To: perlchina@googlegroups.com
Subject: RE:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

刚申请的 github ID  hitsubunnu   emailhitsubunnu@gmail.com

谢了
 
> Date: Tue, 24 Mar 2009 10:44:32 +0800
> Subject: Re:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
> From: phio.asia@gmail.com
> To: perlchina@googlegroups.com
>
> 2009/3/23 wbi
<wbisearchina@hotmail.co.jp>:
> >
可以的话 加我一下
  我正想写个 WWW::Baidu::Mp3 的模块
> >
> >
CPAN id
  HITSU  hitsubunnu
>
欢迎欢迎:-) agent那边审阅通过了,我再把你加进github的提交者里面:-)
>
> --
> You should be the change you wish to see in the world
>
> </html


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

2009年3月25日星期三

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

Mac OS 的 系列就是猫科动物啊
 
什么 Tiger, Leopard,  

 
On 3/26/09, anny raul <annyraul@gmail.com> wrote:
就是那人,哈

2009/3/26 Luo, Yong <Yong.Luo@acs-inc.com>

CU上的hitsubunnu

兴会兴会  


--
anny raul <annyraul@gmail.com>
http://annyraul.blogspot.com
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

就是那人,哈

2009/3/26 Luo, Yong <Yong.Luo@acs-inc.com>

CU上的hitsubunnu

兴会兴会  


--
anny raul <annyraul@gmail.com>
http://annyraul.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

RE: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

CU上的hitsubunnu

 

兴会兴会   J

 


From: perlchina@googlegroups.com [mailto:perlchina@googlegroups.com] On Behalf Of wbi
Sent: Tuesday, March 24, 2009 3:50 PM
To: perlchina@googlegroups.com
Subject: RE:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

 

刚申请的 github ID  hitsubunnu   emailhitsubunnu@gmail.com

谢了
 
> Date: Tue, 24 Mar 2009 10:44:32 +0800
> Subject: Re:
WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
> From: phio.asia@gmail.com
> To: perlchina@googlegroups.com
>
> 2009/3/23 wbi
<wbisearchina@hotmail.co.jp>:
> >
可以的话 加我一下
  我正想写个 WWW::Baidu::Mp3 的模块
> >
> >
CPAN id
  HITSU  hitsubunnu
>
欢迎欢迎:-) agent那边审阅通过了,我再把你加进github的提交者里面:-)
>
> --
> You should be the change you wish to see in the world
>
> </html


--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

2009/3/26 Shu Cho <neatcho@gmail.com>:
> 下一代Leopard, Snow Leopard..., just kidding ;-)
>

呵呵,好名字,我喜欢 :D 就排在第五代和第六代吧。。。哈哈

集群按代起的名字纯粹是好玩,叫起来响亮,哈哈!比 1.0, 2.0 有趣多了 :)

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

是不是X成黑色了的挖,貌似偏题 :(

2009/3/26 Shu Cho <neatcho@gmail.com>
下一代Leopard, Snow Leopard..., just kidding ;-)

--
anny raul <annyraul@gmail.com>
http://annyraul.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

下一代Leopard, Snow Leopard..., just kidding ;-)

2009/3/26 Michael Zeng <galaxy2004@gmail.com>:
> 什么猫啊,鼠的
>
>
> On 3/26/09, agentzh <agentzh@gmail.com> wrote:
>>
>> 2009/3/26 anny raul <annyraul@gmail.com>:
>> > 貌似他博客有相关介绍,长篇大论的 :)
>> >
>> > 2009/3/26 azure wang <azure1st@gmail.com>
>> >>
>> >> agentzh 能够介绍一下 X Hunter 抽取器和 Firefox/Webkit 集群。
>> >>
>> >> 以前都是普通的分析文本  抓取链接,对于解析js获取连接很感兴趣啊。尤其是抓取页面通过ajax获取的链接。
>> >>
>>
>> 呵呵,我在博客上介绍过的是我们的第一代 Mouse 集群,我们目前线上跑的是第二代 Cat
>> 集群,我这个月以来一直在集中力量开发的是我们的第三代 Tiger 集群。从第一代到第三代都是基于 Firefox 的,我同学
>> xunxin++ 目前正在为第四代基于 webkit 的 Lion 集群做准备工作。
>>
>> 等 Tiger 上线之后,我会在征得公司同意之后,对其中的一些关键组件开放源代码,并给出一系列介绍,呵呵,毕竟这些技术比较的敏感了 ;)
>>
>> Cheers,
>> -agentzh
>> >>
>

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

什么猫啊,鼠的


 
On 3/26/09, agentzh <agentzh@gmail.com> wrote:
2009/3/26 anny raul <annyraul@gmail.com>:
> 貌似他博客有相关介绍,长篇大论的 :)
>
> 2009/3/26 azure wang <azure1st@gmail.com>
>>
>> agentzh 能够介绍一下 X Hunter 抽取器和 Firefox/Webkit 集群。
>>
>> 以前都是普通的分析文本  抓取链接,对于解析js获取连接很感兴趣啊。尤其是抓取页面通过ajax获取的链接。
>>

呵呵,我在博客上介绍过的是我们的第一代 Mouse 集群,我们目前线上跑的是第二代 Cat
集群,我这个月以来一直在集中力量开发的是我们的第三代 Tiger 集群。从第一代到第三代都是基于 Firefox 的,我同学
xunxin++ 目前正在为第四代基于 webkit 的 Lion 集群做准备工作。

等 Tiger 上线之后,我会在征得公司同意之后,对其中的一些关键组件开放源代码,并给出一系列介绍,呵呵,毕竟这些技术比较的敏感了 ;)

Cheers,
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

[PerlChina] Re: Firefox JS 版 X Hunter 抽取器与 Perl VDOM.pm 抽取器的性能对比 (Was Re: 寻 WWW::Baidu 的维护者)


呵呵,在 firefox 3.1beta3pre 中 JS 打开 JIT 和不打开 JIT 时,我的 List Hunter
抽取器的每页面分析时间都稳定在平均 300 ms 水平(加载和渲染页面除去 web I/O 平均为 300 ms)。在使用 Perl
改写之后,分析 VDOM 的时间为平均 150 ~ 200 ms 的水平(加载 VDOM 的时间为平均 150 ms)。
 
抱歉,可能还没有完全理解你的List Hunter是怎么工作的,另外VDOM和它是什么关系呢?后面看到了VDOM是自定的格式,那是怎么生成的呢?有没有一个简短的例子,这样比较好理解?
 

然后这种语言的比较并不公平,因为在 JS 版 List Hunter (还包括其他 Hunter)中,主要时间是在 DOM 操纵上,而非
JS 代码本身。而 Firefox 的 DOM 操纵代价比较高昂[1]。

同意,现在的JS方面也有一些工作使得以后能直接trace into DOM,这样这个瓶颈应该可以被慢慢干掉了,但不是现在.
 
而在 Perl 环境里,我根据实际需要,对 VDOM.pm 这种
DOM 库进行了优化(但仍是 100% Perl),

难道没有用c的库?
 
和 Hunter DOM 分析代码之间也不存在很多开销(在 Firefox 里,JS
操纵 C++ DOM 就不同了)。

那我的理解就是:由于JS->DOM的操作慢是瓶颈了?
 
另外,Perl hunter 仍然依赖于 Firefox[2] 导出带视觉信息的 DOM
(我自己定义了一种很紧凑的基于纯文本的 VDOM 格式),

比较有兴趣知道大概是怎么个格式怎么导出?
 
而在上面的计时中,并未包含 VDOM 导出的时间[3].

每个element都要去算一遍样式不是比较费时么?是把页面渲染后的DOM文本化么?
 

按照计划,等这一批纯 Perl 的可脱离 Firefox 运行的 hunter 上线之后,我就要着手 libvdom++
库的开发了,届时一切都是纯 C++,期望届时会有几倍甚至一个数量级的性能提升 :)

Well, 不明白怎么脱离Firefox了,自己分析DOM?
可能我有些背景信息不是很清楚,部分东西没法跟上你了,呵呵
 

Cheers,
-agentzh

脚注:
[1] 比如 textContent 方法就惊人地慢,同时在标准的 DOM 中,许多视觉信息和 DOM
本身并未融为一体,例如字体、字号、字重、背景色等等,所以在 DOM 操纵中存取这些信息即使自己做缓存也比较吃力。
[2] 事实上,IE 和 Webkit 亦可 ;) 我们已经让 webkit 生成相同格式的 VDOM 输出了 :)
[3] 事实上,在 Firefox 中用 JS 遍历 DOM 生成 VDOM 的开销是比较高的,达到每页面 500 ms
的量级,所以我们已经在尝试使用 C++ 代码来遍历 DOM 以生成 VDOM,特别是在 webkit 中,而非 firefox.





--
>: ~

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

2009/3/26 anny raul <annyraul@gmail.com>:
> 貌似他博客有相关介绍,长篇大论的 :)
>
> 2009/3/26 azure wang <azure1st@gmail.com>
>>
>> agentzh 能够介绍一下 X Hunter 抽取器和 Firefox/Webkit 集群。
>>
>> 以前都是普通的分析文本 抓取链接,对于解析js获取连接很感兴趣啊。尤其是抓取页面通过ajax获取的链接。
>>

呵呵,我在博客上介绍过的是我们的第一代 Mouse 集群,我们目前线上跑的是第二代 Cat
集群,我这个月以来一直在集中力量开发的是我们的第三代 Tiger 集群。从第一代到第三代都是基于 Firefox 的,我同学
xunxin++ 目前正在为第四代基于 webkit 的 Lion 集群做准备工作。

等 Tiger 上线之后,我会在征得公司同意之后,对其中的一些关键组件开放源代码,并给出一系列介绍,呵呵,毕竟这些技术比较的敏感了 ;)

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Firefox JS 版 X Hunter 抽取器与 Perl VDOM.pm 抽取器的性能对比 (Was Re: 寻 WWW::Baidu 的维护者)

2009/3/25 Question <wanliyou@gmail.com>:
>
> 原来的JS开上JIT和Perl有对跑过么?
> --

呵呵,在 firefox 3.1beta3pre 中 JS 打开 JIT 和不打开 JIT 时,我的 List Hunter
抽取器的每页面分析时间都稳定在平均 300 ms 水平(加载和渲染页面除去 web I/O 平均为 300 ms)。在使用 Perl
改写之后,分析 VDOM 的时间为平均 150 ~ 200 ms 的水平(加载 VDOM 的时间为平均 150 ms)。

然后这种语言的比较并不公平,因为在 JS 版 List Hunter (还包括其他 Hunter)中,主要时间是在 DOM 操纵上,而非
JS 代码本身。而 Firefox 的 DOM 操纵代价比较高昂[1]。而在 Perl 环境里,我根据实际需要,对 VDOM.pm 这种
DOM 库进行了优化(但仍是 100% Perl),和 Hunter DOM 分析代码之间也不存在很多开销(在 Firefox 里,JS
操纵 C++ DOM 就不同了)。另外,Perl hunter 仍然依赖于 Firefox[2] 导出带视觉信息的 DOM
(我自己定义了一种很紧凑的基于纯文本的 VDOM 格式),而在上面的计时中,并未包含 VDOM 导出的时间[3].

按照计划,等这一批纯 Perl 的可脱离 Firefox 运行的 hunter 上线之后,我就要着手 libvdom++
库的开发了,届时一切都是纯 C++,期望届时会有几倍甚至一个数量级的性能提升 :)

Cheers,
-agentzh

脚注:
[1] 比如 textContent 方法就惊人地慢,同时在标准的 DOM 中,许多视觉信息和 DOM
本身并未融为一体,例如字体、字号、字重、背景色等等,所以在 DOM 操纵中存取这些信息即使自己做缓存也比较吃力。
[2] 事实上,IE 和 Webkit 亦可 ;) 我们已经让 webkit 生成相同格式的 VDOM 输出了 :)
[3] 事实上,在 Firefox 中用 JS 遍历 DOM 生成 VDOM 的开销是比较高的,达到每页面 500 ms
的量级,所以我们已经在尝试使用 C++ 代码来遍历 DOM 以生成 VDOM,特别是在 webkit 中,而非 firefox.

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

[PerlChina] Earn money $1000-25000 per month

MONEY WORLD

EARN MONEY "$1000-25000" PER MONTH
TAKE SIMPLE ONLINE SURVEYS
CREATE FREE ACCOUNT OTHER DETAILS LOG ON TO

********************************************************************

http://www.AWSurveys.com/HomeMain.cfm?RefID=ushaselvam

********************************************************************
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

貌似他博客有相关介绍,长篇大论的 :)

2009/3/26 azure wang <azure1st@gmail.com>
agentzh 能够介绍一下 X Hunter 抽取器和 Firefox/Webkit 集群。

以前都是普通的分析文本  抓取链接,对于解析js获取连接很感兴趣啊。尤其是抓取页面通过ajax获取的链接。

2009/3/25 Question <wanliyou@gmail.com>



呵呵,我们现在的 X Hunter 抽取器都是 100% 纯 Perl(从前是 100% 纯 JavaScript,哈哈) :)
等后面量更大了,再换 ANSI C++ ;)

原来的JS开上JIT和Perl有对跑过么? 
--
>: ~

--
Azure.Wang
--
anny raul <annyraul@gmail.com>
http://annyraul.blogspot.com

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

agentzh 能够介绍一下 X Hunter 抽取器和 Firefox/Webkit 集群。

以前都是普通的分析文本  抓取链接,对于解析js获取连接很感兴趣啊。尤其是抓取页面通过ajax获取的链接。

2009/3/25 Question <wanliyou@gmail.com>


呵呵,我们现在的 X Hunter 抽取器都是 100% 纯 Perl(从前是 100% 纯 JavaScript,哈哈) :)
等后面量更大了,再换 ANSI C++ ;)

原来的JS开上JIT和Perl有对跑过么? 
--
>: ~






--
Azure.Wang

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)



呵呵,我们现在的 X Hunter 抽取器都是 100% 纯 Perl(从前是 100% 纯 JavaScript,哈哈) :)
等后面量更大了,再换 ANSI C++ ;)

原来的JS开上JIT和Perl有对跑过么? 
--
>: ~

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

2009/3/25 Xinglu Lin <i@lxl.cn>:
> ^L^ 我们测试用XMLDOM也行,不过用C写雷咯!
>

呵呵,我们现在的 X Hunter 抽取器都是 100% 纯 Perl(从前是 100% 纯 JavaScript,哈哈) :)
等后面量更大了,再换 ANSI C++ ;)

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

^L^ 我们测试用XMLDOM也行,不过用C写雷咯!

2009/3/25 agentzh <agentzh@gmail.com>
2009/3/25 Xinglu Lin <i@lxl.cn>:
> 普通方法抓取的链接是无效的,要用 JS 组合的才有效。
>

此时需要我的 X Hunter 抽取器和 Firefox/Webkit 集群出马了 :D

Cheers,
-agentzh
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

2009/3/25 Xinglu Lin <i@lxl.cn>:
> 普通方法抓取的链接是无效的,要用 JS 组合的才有效。
>

此时需要我的 X Hunter 抽取器和 Firefox/Webkit 集群出马了 :D

Cheers,
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

普通方法抓取的链接是无效的,要用 JS 组合的才有效。

2009/3/23 agentzh <agentzh@gmail.com>
2009/3/23 wbi 畢 <wbisearchina@hotmail.co.jp>
可以的话 加我一下  我正想写个 WWW::Baidu::Mp3 的模块

我 CPAN 的id是  HITSU  (hitsubunnu)

热烈欢迎! :D

Thanks!
-agentzh

--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

2009年3月24日星期二

[PerlChina] Re: 连postgresql,那个模块好呢

手头有个脚本,目前只能在UNIX系统上跑,因为用了一些shell命令,是用来比较两个文件夹下的文件的,备份原先的文件然後批量生成patch。

用的时候把$dir1改成存放原始文件的目录,$dir2改成经过更改过的文件的存放目录,$diff_dir改成存放备份文件和patch的目录就可
以了,

这个脚本我一般放在邮箱里,随身携带 :)

begin script ==>

#!/usr/bin/perl -W

use strict;
use warnings;

use File::Compare;

my $dir1 = "dir1";
my $dir2 = "dir2";
my $diff_dir = "diff_dir";

my @files = get_file_list($dir1);

foreach my $file (@files) {

if (-f "$dir1/$file") {

my $ret = compare("$dir1/$file", "$dir2/$file");

if ($ret != 0) {

my $file_directory = get_file_directory($file);
my $file_name = get_file_name($file);

if ((-e "$dir2/$file") && (-f "$dir2/$file")) {

if ($ret > 0) {

print "DIFF : $file_directory/$file_name\n";

`mkdir -p $diff_dir/$file_directory`;
`cp $dir1/$file $diff_dir/$file_directory/`;
`diff $dir1/$file $dir2/$file > $diff_dir/$file_directory/
$file_name.diff`;

}elsif ($ret < 0) {

print "ERROR : $file_directory/$file_name\n";

}
}else {

print "DELETE : $file_directory/$file_name\n";

}
}
}
}

@files = ();

@files = get_file_list($dir2);

foreach my $file (@files) {

if (-f "$dir2/$file") {

if ((!(-e "$dir1/$file")) || (-d "$dir1/$file")) {

my $file_directory = get_file_directory($file);
my $file_name = get_file_name($file);

print "ADD : $file_directory/$file_name\n";

}
}
}

sub get_file_list {

my $dir = shift;

my $command = "cd $dir; find ./";

my $command_output = `$command`;

my @files = split(/\n/, $command_output);

return @files;
}

sub get_file_name {

my $file = shift;

my $file_name = "";

if ($file =~ /^.*\/(.*?)$/) {

$file_name = $1;

}else {

$file_name = $file;

}

return $file_name;
}

sub get_file_directory {

my $file = shift;

$file =~ s/^\.\///;

my $file_directory = "";

if ($file =~ /(^.*)\/.*?$/) {

$file_directory = $1;

}else {

$file_directory = "";

}

return $file_directory;
}


end script <==

以前用这个脚本比较过一个Oracle数据库的Schema,不过当初把这个数据库里所有表和view的DDL都存成了一个独立的文件,Oracle里
用getDDL就能在线获取,但是我不知道PostgreSQL里怎么获取。

这个脚本写得太丑了,而且也不跨平台,所以暂时不想给做成模块 :)

On Mar 18, 12:57 pm, Jumping <quzhengp...@gmail.com> wrote:
> 连postgresql,做schema比较,用什么模块好呢?
>
> DBIx::Compare ?
>
> --
> Best Regards,
> Jumping Qu
> ------
> Don't tell me how many enemies we have, but where they are!
> (ADV:Perl -- It's like Java, only it lets you deliver on time and under
> budget.)
--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛
-~----------~----~----~----~------~----~------~--~---

RE: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)

刚申请的 github ID  hitsubunnu   email: hitsubunnu@gmail.com

谢了
 
> Date: Tue, 24 Mar 2009 10:44:32 +0800
> Subject: Re: 寻 WWW::Baidu 的维护者 (Was Re: [PerlChina] Re: 网页不能抓取)
> From: phio.asia@gmail.com
> To: perlchina@googlegroups.com
>
> 2009/3/23 wbi 畢 <wbisearchina@hotmail.co.jp>:
> > 可以的话 加我一下  我正想写个 WWW::Baidu::Mp3 的模块
> >
> > 我 CPAN 的id是  HITSU  (hitsubunnu)
> 欢迎欢迎:-) 等agent那边审阅通过了,我再把你加进github的提交者里面:-)
>
> --
> You should be the change you wish to see in the world
>
> --~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---