免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 斯文牛氓
打印 上一主题 下一主题

拿mojo写了个百度音乐的爬虫 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2013-09-25 16:29 |只看该作者
kernel69 发表于 2013-09-25 15:52
这是推广贴?还有个群211685345


呃 这个是博客的文章 直接复制过来了。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
12 [报告]
发表于 2013-09-25 18:17 |只看该作者
回复 10# 斯文牛氓
你只要人工能同时下载两个文件就可以。不可能被封。



   

论坛徽章:
0
13 [报告]
发表于 2013-09-25 18:29 |只看该作者
py 发表于 2013-09-25 18:17
回复 10# 斯文牛氓
你只要人工能同时下载两个文件就可以。不可能被封。

你可以去试试,我coro不熟  但是之前的写法是AnyEvent+EV,请求多次之后就提示你要输入验证码了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
14 [报告]
发表于 2013-09-26 08:32 |只看该作者
回复 13# 斯文牛氓

这个是我在实际应用中已经用了很久的,所以知道是一定可以。
其实每个网站对并发的连接都会有限制,别说是百度,连GOOGLE都一样。Coro的最大目的就是很好的协调不同任务(event)以适应“当前的环境”。

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34子鼠
日期:2013-12-14 14:57:19射手座
日期:2014-04-25 21:23:23
15 [报告]
发表于 2013-09-26 10:51 |只看该作者
感谢分享{:3_203:}

论坛徽章:
0
16 [报告]
发表于 2013-09-26 12:19 |只看该作者
py 发表于 2013-09-26 08:32
回复 13# 斯文牛氓

这个是我在实际应用中已经用了很久的,所以知道是一定可以。


比如呢

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
17 [报告]
发表于 2013-09-26 16:24 |只看该作者
比如,你刚刚说的控制并发连接就是一个很好的例子,Coro::Semaphore就解决了这个问题,一行代码。
再比如,一些时候任务的执行有一定的先后顺序和触发条件,这个时候就可以通过信号或是锁机制来控制,Coro也有相应的模块Coro::Signal,Coro::RWLock等。也是非常简单的一行代码。
这些都可以和AE整合的很好。而Mojo在这块就是空白,我并不是说Mojo不好,而是Mojo的定位就不是干这事的。Mojo的优势是有良好的UI设计,用起来比较傻瓜,学习成本低很多,并且和web框架整合的很好,很多用XPATH做的事他都提供了相应的DOM类的方法。但随着你做的事越来越复杂,这东西就有瓶颈了。

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
18 [报告]
发表于 2013-09-26 17:14 |只看该作者
回复 17# py

在 Mojo::UserAgent 中的 ua 在生成的直接直接加  max_connections 的属性就能控制并发了.
   

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
19 [报告]
发表于 2013-09-26 17:19 |只看该作者
感谢分享。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
20 [报告]
发表于 2013-09-27 08:42 |只看该作者
iakuf 发表于 2013-09-26 17:14
回复 17# py

在 Mojo::UserAgent 中的 ua 在生成的直接直接加  max_connections 的属性就能控制并发了. ...


这个肯定不是并发啊。。。
文档上写的很清楚“Maximum number of keep-alive connections that the user agent will retain before it starts closing the oldest cached ones”
HTTP的keep-alive值和并发是两回事。

刚才试了一下,就用Mojo::UserAgent在CPAN上的non-blocking代码试,
my @url = qw/
www.cpan.org
www.oreilly.com
www.amazon.com
mojolicio.us
www.baidu.com
www.google.com
www.sina.com.cn
www.weibo.com
www.yahoo.com
www.oreilly.com.cn
www.oreilly.com.tw
www.qq.com
www.ibm.com
/;

每次就打印page title,即使max_connections设置成1也并不是顺序执行。

我对Mojo::UserAgent不熟(其实今天是第一次用。。。的确简单),从文档上看,它应该就是一个多了很多附加功能的AnyEvent::HTTP,而并发限制不应该是在这个级别上做的事,是更往下一层的driver应该提供的功能。就像AnyEvent::HTTP也能设置keep-alive但那不是并发数。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP