使用scrapy的定制爬虫-近期

近期我的爬虫写完了-.-没有足够的资源(服务器,带宽)来跑.so这个项目暂放一下先找工作了.

简单说下后面的内容要点.
定制webkit:
1,主要作用是:支持js,另可快速解析被hide了的干扰元素(页面中的非显示内容).这点用webpage的toPlainText即可...优化方面:1,缓存webkit进程实例.2,通过一些比较hack的方法,把css给禁了(定制manager.createRequest).3,其他一些配置项.例如webkit开启preferNetwork来支持标准的http cache...主要就这几个了...

2,scrapy本身的优化方面:
scrapy本身很多东西优化(例如dnscache)都是已经完成了的,请先仔细阅读文档,必要时源码.业务相关的部分,建议注意正则解析速率(可采取先写逻辑大致提取后再正则).解析写的不好会导致cpu占用高(若无法优化.考虑解析和爬取完全分离是否可行).这些都是具体情况具体处理了.
说下scrapy框架的优化.
1,scrapy使用短连接.可使用requests+scrapy.utils里面的deferinthread快速patch成长连接,但deferinthread用到了线程池,因此网络方面改善了但调度方面变差了(由twisted异步变为线程池).请评估.有时间我会给scrapy写个长链接支持,在twisted基础上.
2,考虑给scrapy实现标准的http cache,也可通过代理服务器快速patch一个http  cache(无需改动代码).看具体情况了.

3,scrapy的一些细节:
同上scrapy很多细节也替你做了(例如url规范化),请先仔细阅读文档,必要时源码.其他一些细节
1,default_headers,添加host头,否则会导致部分虚拟空间无法访问
2,链接解析中,a tag的href,写rule中的ProcessLink,记得strip,有些网站有类似如下的<a href=' xxxx'>前面有个空格,会导致scrapy的链接解析错误(但浏览器访问正常)
3,是否要支持iframe.即写链接解析时考虑iframe元素处理
4,etc...略想不起来...

4,架构,运行监控方面:
这个跟具体情况有关...简单说下,你要考虑spider如何写,是否多crawler...crawler和spider的对应关系...一般情况你不需要考虑这个问题(绝大多数都是crawler,spider一对一).

其他...etc...回想中...

后续我又看了很多有趣的spider trap-.-不过突破防爬取不会被提及.
也弄了下gevent-.-结论是除非你清楚你在干啥...否则还是用scrapy吧...
正在学习爬虫相关的算法中...

-.-系列文先暂停在此了...

转载于:https://my.oschina.net/u/1024140/blog/124577

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值