免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: 斯文牛氓

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

论坛徽章:
1
辰龙
日期:2014-05-15 19:37:15
发表于 2013-09-27 11:42 |显示全部楼层
本帖最后由 iakuf 于 2013-09-27 11:49 编辑

回复 20# py

这是要控制并发连接的数量, 并不是要顺序执行.
AnyEvent::HTTP 要控制并发,使用 MAX_PER_HOST 这个来控制单个主机的并发,很有效.


   

论坛徽章:
0
发表于 2013-09-27 11:54 |显示全部楼层
py 发表于 2013-09-27 08:42
这个肯定不是并发啊。。。
文档上写的很清楚“Maximum number of keep-alive connections that the us ...


Mojo的loop是自己写的 我代码里没有用并发的说 依然会有机率被block,coro也好,anyevent也好,如果不替换agent和ip,被封是迟早的事....

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-09-27 13:16 |显示全部楼层
iakuf 发表于 2013-09-27 11:42
回复 20# py

这是要控制并发连接的数量, 并不是要顺序执行.

无论是Mojo还是AnyEvent::HTTP,你说的这两个参数都是控制keep-alive
说是“并发连接的数量”也不能说是错,但你说的“连接”是TCP连接,说的是有多少TCP连接保持着以备HTTP重用。

我举个例子,现在很多爬虫经常光顾的网站都不是仅仅限制单个IP的TCP连接数量,如果一个keep-alive就能控制并发了那任何爬虫都不会被K了。

我说的顺序执行,是说,在控制队列任务并发的时候,如果我把并发设置成1,那所有任务就该是顺序执行的。我这里说的“并发”可不是说的可被重用的TCP连接。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-09-27 13:27 |显示全部楼层
斯文牛氓 发表于 2013-09-27 11:54


Mojo的loop是自己写的 我代码里没有用并发的说 依然会有机率被block,coro也好,anyevent也好,如果不 ...

恩,和扶凯说的并发,是有点偏楼。
你说的这是另外一回事。做爬虫是有很多技巧的,正确配置header是首先要考虑的。
另外你说的是不是“被封”,这个情况就太多了。这种资源类网站要想限制爬虫下载东西办法就多了,毕竟一般的爬虫不解析JS,你怎么换agent,人家要是想限制你都是有办法的。
如果是做技术测试,可以试试google亚马逊一类的信息类网站,他们限制的是并发(不是TCP连接的重用数)

论坛徽章:
0
发表于 2013-09-27 14:03 |显示全部楼层
1.换ip
2.换header
3.换agent
4.控制好并发
5.随机打乱连接

目前已搞定百度音乐持续下载ing....

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
发表于 2013-09-27 15:05 |显示全部楼层
回复 23# py


    看到PY一直都在推广AnyEvent::HTTP这个模块。。感觉貌似很强大的样子。。

    今天刚好有空,我去看看到底有啥神奇的东西。

    最近刚好有一个新的平台需求,看看用这个效果如何。。

    而且想问py一个问题,你是怎么判断爬虫什么情况下结束的?

    因为爬虫很容易就会进入死循环的环境,你是怎么判断结束的呢?

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
发表于 2013-09-27 16:48 |显示全部楼层
学习了

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-09-27 19:28 |显示全部楼层
回复 26# 墨迹哥

我只是介绍过AnyEvent::HTTP,说不上是“推广”

关于你说的“判断结束”的问题,我觉得这东西就不是一个应该退出的程序。就像你问nginx如何判断结束?
爬虫就应该是一个一直运转的引擎,接到任务就开始执行。一旦你需要所谓的“判断结束”,那就是一个过程化的程序。非要说怎么退出,那就join吧。

论坛徽章:
3
未羊
日期:2013-11-18 15:17:06酉鸡
日期:2013-12-06 17:07:16天蝎座
日期:2014-06-11 12:37:07
发表于 2013-09-27 22:23 |显示全部楼层
回复 28# py


    如果按照这个说法的,那么爬一个站点的话,它不就永远都不会有停止?

    而且我还想请教一个问题,在微薄上有人提到过一个概念叫做"冗余",这个应该怎么理解呢?

论坛徽章:
0
发表于 2016-07-12 16:19 |显示全部楼层
本帖最后由 数据工厂_datafactory 于 2016-07-12 16:19 编辑

楼主写的不错哦,多谢分享了

神箭手云市场上有现成写好的网易云音乐歌单采集爬虫,可以直接使用哦


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP