scrapy爬虫之gerapy和scrapyd

scrapy爬虫

笔者近期有一个特定网站全站爬取的需求。因为全站数据量大,又希望时间开销小。作为一个入门级的爬虫工作者,根据以往经验,笔者(主要使用python编程)设想了以下几种方案:

selenium

1、用 selenium 模拟浏览器爬虫,自己改造框架,使得可以多层全站爬取。
这里,模拟浏览器的好处在于可以加载运行JS脚本,能够解决一些JS脚本动态生成链接的问题。但是对于全站爬取而非特定页面,这样的时间开销很大,工作也很复杂,不太适合入门级的选手。(关于时间开销,如果有加速的办法和分布式解决方案请给笔者留言)

wget

2、用 wget-m(mirror) 参数,全站镜像,或者用-r -l n 参数,限制多层爬取。
尽管可以限制爬取的文件类型和爬取深度,但是命令行的参数可配置性非常有限。最重要的是,简单暴力的wget 给人的感觉应该是快,而实际上wget 的爬取速度很慢,尤其是对于一个大站点,据笔者的经验,scrapy 5分钟的工作量,wget 1个小时才能完成。
另外,要想加速爬取,需要多线程和分布式,笔者调研了wget的多线程版本,mwget 完全只有大文件下载加速功能(没有wget 的各种功能)。所以wget方案可定制性差,速度慢,没有现成的多线程解决方案。

scrapy

3、scrapy 这个非常成熟的爬虫框架,用python 实现,有无数先辈实践,而且有基于redis 的分布式版本,其优点不再赘述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值