
1 Livid MOD PRO Celery or RQ is better for such scenario. |
3 phuslu 2012-09-14 00:08:49 +08:00 gevent.pool.spawn + httplib2 |
  4 Brutal 2012-09-14 00:25:11 +08:00 queue 然后 q.get() |
5 reus 2012-09-14 00:33:21 +08:00 requests + multiprocessing.Pool |
7 btwo 2012-09-14 10:38:07 +08:00 有测试结果了也请贴出来,一起学习下! |
8 muxi 2012-09-14 10:50:49 +08:00 |
9 muxi 2012-09-14 10:51:50 +08:00 |
10 muxi 2012-09-14 10:54:45 +08:00 |
13 sinreal 2012-09-14 12:48:26 +08:00 额,豆瓣好像限制单个ip访问频率的。楼主可以考虑多个ip慢慢去抓。 |
15 14kscn 2012-09-14 13:25:06 +08:00 我比较好奇的是 v2ex 可以贴 code 了? |
16 eric_q 2012-09-14 13:32:18 +08:00 如果爬得过快消耗太多资源,可能会被手动封禁 |
18 clowwindy 2012-09-14 20:41:09 +08:00 爬虫的瓶颈不在抓取,在被爬的网站上……一般要爬单个网站的大量数据,要么直接找对方要,要么动用大量 IP…… 抓取的性能不是问题,如果爬完全不同的网站,之前用 tornado 那个 async_http_client 写了一个爬虫,开 5 个进程一边爬一边往 HBase 里插,可以达到 2000 QPS。 |
19 fanzeyi 2012-09-14 20:45:57 +08:00 如果楼主可以生成出爬的页面的链接到一个数组里,可以直接用 grequests<https://crate.io/packages/grequests/> 非常好用的异步 URL Fetching 库. 后端是 Gevent ..可以写上 callback 参数 =v= |
20 chendahui007 2012-11-18 15:12:46 +08:00 @cabinw 可以看看你写的爬豆瓣电影那个么? |
21 eric_q 2012-11-18 15:38:51 +08:00 |
22 cabinw OP @chendahui007 我已经放弃爬了,会被封IP的 |
24 chendahui007 2012-11-18 16:32:44 +08:00 @cabinw 那可以观摩你之前写的代码么?俺是新手,很新的手,没啥思路 ...`从IMDB id tt0000000 到 tt9999999遍历访问一遍豆瓣的电影信息 ` 这 它们怎么关联的 ,求思路 |
25 cabinw OP @chendahui007 gtalk:cabinw#gmail.com |
26 lj0014 2012-11-18 21:20:43 +08:00 楼主爬了多少豆瓣电影了,据说有40W,我现在就爬了7W~ |
29 xi4nyu 2012-11-19 11:25:34 +08:00 多核机子上面应该对应核数启,才能达到最大性能. |
31 BigZ 2012-11-19 14:23:45 +08:00 异步?还快速?太黑了 丢我们采集界的脸 采集界有个原则,单线程同步采集,必要的时候还要sleep几秒 |