永发信息网

基于python的scrapy爬虫,关于增量爬取是怎么处理的

答案:2  悬赏:30  手机版
解决时间 2021-01-29 07:40
基于python的scrapy爬虫,关于增量爬取是怎么处理的
最佳答案
对于只是读取某几个网站更新内容的爬虫完全没必要在python代码中实现增量的功能,直接在item中增加Url字段。
  item['Url'] = response.url

  然后在数据端把储存url的column设置成unique。
  之后在python代码中捕获数据库commit时返回的异常,忽略掉或者转入log中都可以。
  网上有说支持增量的,我看了代码+实际测试,还是觉得不是增量的...

  我的做法是pipeline的open_spider时读取所有item里面的url,做成一个parsed_urls的list,在rule的process_link中过滤掉这些已经下载的url,如果需要的话可以再item里面加入last_notify属性进一步扩展...
全部回答
对于只是读取某几个网站更新内容的爬虫完全没必要在python代码中实现增量的功能,直接在item中增加url字段。 item['url'] = response.url 然后在数据端把储存url的column设置成unique。 之后在python代码中捕获数据库commit时返回的异常,忽略掉或者转入log中都可以。 我使用的是sqlalchemy。我是这么写的 from sqlalchemy.exc import integrityerror class xxxpipeline(object): def process_item(self, item, spider): #一些session.add() #........ try: session.commit() print 'crawl %s done!' % item['url'] except integrityerror: print 'skip %s .' % item['url'] return item 虽然每次crawl都会重复抓取一些数据,但最终结果库内不会有相同的url。 对于小规模的爬虫,这种重复抓取的成本基本可以忽略。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
24.32.48.32.36.38.32.38的 中位数是
背景材料:2005年8月5日.中国农业大学成功地获
我男朋友总是晚上睡着之后跟没我这人似的,离
中国移动(冯张指定专营店)地址好找么,我有些
承德市到承德丰宁凤山
4399小小精灵人物声望怎么升级
男孩几岁可以用剃须刀,剃胡子
唯心史观的意思是什么啊?知道的请说下!
通化通钢总经理怎么死的?
小丽用8米长的彩带做了一些中国结,每个中国
专本套读三年好还是本科自考四年好?
中国联通(洪洞冯张专营店)地址在哪,我要去那
【下列物质除哪项外,完全水解后的产物都相同
中国联通(洪洞干河专营店)怎么去啊,我要去那
房地产开发企业销售自行开发的房地产项目与纳
推荐资讯
读下图,完成题。【小题1】沿箭头a方向自然带
电影一个女孩被欺负 爸爸把欺负她的男孩扔海
【节拍英文】英语节拍中“一拍”怎么说?单词
皮肤干用什么牌子的护肤品好
标置的意思是什么啊?知道的请说下!
打甚紧的意思是什么啊?知道的请说下!
教育局面试 试讲应该注意写什么?
思韵的意思是什么啊?知道的请说下!
南南钢琴学校地址好找么,我有些事要过去
黄晓明和angelababy和杨幂一起演过什么戏
长寿菩提古镇A区1号停车场地址在什么地方,我
鑫龙度假酒店地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?