pyspider最佳实践

Posted jetz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pyspider最佳实践相关的知识,希望对你有一定的参考价值。

pyspider是好东西,非常稳定,很久很久以前架了一个,心冷了一段时间,但人家尽忠职守地持续运行,一直在抓取东西。

 

结合chrome,抓取代码简直不要太好写,没想到,最头大的,还是它的调度。明明感觉没问题的,就是不运行。在这个上面花的时间,比页面解析的要多。所以,把近期的学习心得记录下来:

 

第一、控制台的含义。rate/burst控制并发和速度基本不用管。progress现实近期调用次数可以参考一下。我用得最多的是左上角的Recent Active Tasks,可以查看究竟运行了几个爬虫任务(对应self.crawl)

技术图片

 

第二、几个重要控制设置。@every(minutes=24*60)是指的运行间隔。@config(age=300)指的页面周期(单位秒),周期范围内将不执行抓取。

第三、我的需求,是对一些固定页面(已经存在库中了)进行定时检查,解析出链接,已经入库的老链接忽略,新链接入库。所以,不采用默认的start页面进入总页面,解析出一组分页面链接,再分别调用分页面的方式。而直接在start中启动所有分页面,分页面设置有效期,定期自动重新获取。而start每天重入一次,保证链接活动即可。如下:

技术图片

以上是关于pyspider最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

制作容器镜像的最佳实践

后端日志最佳实践

DAO(数据访问对象)最佳实践 - 我看到的示例同时使用 DAO 和服务对象,这里的最佳实践是啥?

平均堆栈身份验证 - 最佳实践

Activity的最佳实践

Openstack迁移DDH最佳实践