包含标签 scrapy 中的文章

[置顶]scrapy爬虫教程导航

教程导航 (1)分布式下的爬虫Scrapy应该如何做-安装 (2)分布式下的爬虫Scrapy应该如何做-关于对Scrapy的反思和核心对象的介绍 (3)分布式下的爬虫Scrapy应该如何做-递归爬取方式,数据输出方式以及数据库链接 (4)分布式下的爬虫Scrapy应该如何做-规则自动爬取……

阅读全文

[scrapy] images pipeline分析– 下载图片如何上传到阿里云服务

目录 源起 准备 分析 实践 总结 源起 现在网上已经有很多方便的云存储了,比如阿里云的oss,亚马逊的s3 ,Azure 的blob,云的储存对于大数据量的文件或者图片来说,绝对是相当的方便,现在我们就来分析一下,如何使用scrapy的pipeline ,将我们下载图片直接上传到我们的阿里云oss……

阅读全文

[爬虫]python下的xpath清洗数据之html数据清洗

目录 源起 分析 解决 总结 源起 现在我们面对一些爬虫数据,特别是对于web网页的爬取的时候,网页总有一些不规整的数据来导致拿数据的麻烦,比如如下这种 <html> <p>111</p> <p>222</p> <p>333</p> <p>444 <script> eeeeeeeeeeee </script> </p> <p>555 <script> aabbccddd </script> </p> </html> 我只想拿到111,222,333,444,555这些有效的信息,因为有些p标签里面会引入script元素,导致……

阅读全文

[可视化抓取]portia2.0尝鲜体验以及自动化畅想-数据存储入mongodb

总览 环境 分析 猜想 实施 总结 环境 mac or ubuntu 16.04 docker 分析 上一章节,==> [可视化抓取]portia2.0尝鲜体验以及自动化畅想-数据输出以及原理分析 <== 我们已经分析了portia 数据 输出的方式,以及从代码的层面来分析它实际的运作原理,群里有小伙伴以及微信私信问我:大鱼,这个怎么和我们的数据……

阅读全文

[重大更新]可视化调度器tiktok 问世了

项目 地址 https://github.com/BruceDone/Tiktok 背景 在很早之前,博主有介绍过可视化的调度工具,dagobah,不过,那个时候dagobah相当的不稳定,动不动就会奔溃,页面就直接打不开,在尝试过各种进程保护模式,或者docker化之后,都完全无法满足工作里面的需求,后来干脆就直接打算在python2的flask,换成……

阅读全文

[可视化抓取]portia2.0尝鲜体验以及自动化畅想[1]

缘起 最近一直在思考如何更改智能化抓取的事情,每当来了一个新的task,都要自己手动分析,手动写xpath ,然后写正则,各种测试,各种部署,其实说来,这些事情的重复度很高,那我们能不能把一些重复性的动作抽象出来,做成一个独立的单元呢?在参考佷多类似的自动化的工具之后,猜想了如下的动……

阅读全文

scrapy下的一些常见错误处理

常见的一些小错误分类处理 内部错误 逻辑错误 其它错误 内部错误 TypeError 表现形式:TypeError: ‘float’ object is not iterable 相关搜索:https://github.com/scrapy/scrapy/issues/2461 解决方法:sudo pip install -U Twisted==16.6.0 ERROR: Unable to read the instance data ,giving up 表现形式: 直接error 报错……

阅读全文

scrapy经验分享-同一项目不同的spider启用不同的配置

在群里经常被问到如何解决同一个爬虫启用不同的piepline的问题,一般的解决通过参数的不同解决这个 def process_item(self, item, spider): self._client.create_index([('msg_id', pymongo.DESCENDING)], background=True) self._client.update_one(filter={'msg_id': item['msg_id']}, update={'$set': dict(item)}, upsert=True) return item 代码中有两个重要的参数item,还有一个spider ,我们打个断点来看看spider 里面的都有些什么 简单点我们可以通过name做逻辑上的判断 if spider.name == 'spider_1': do sth....……

阅读全文

[scrapy]scrapy源码分析–中间件是如何加载的

中间件是scrapy的核心部分,数据的传递,队列的维护,都是靠中间件,所以了解他的生命周期还是很有必要的 https://github.com/scrapy/scrapy/blob/master/scrapy/core/spidermw.py def _add_middleware(self, mw): super(SpiderMiddlewareManager, self)._add_middleware(mw) if hasattr(mw, 'process_spider_input'): self.methods['process_spider_input'].append(mw.process_spider_input) if hasattr(mw, 'process_spider_output'): self.methods['process_spider_output'].insert(0, mw.process_spider_output) if hasattr(mw, 'process_spider_exception'): self.methods['process_spider_exception'].insert(0, mw.process_spider_exception) if hasattr(mw, 'process_start_requests'): self.methods['process_start_requests'].insert(0, mw.process_start_requests) 将中间件的每内置的方法加入到方法链上,注意,这里的数值越小,处理越靠前,下同 https://github.com/scrapy/scrapy/blob/master/scrapy/core/scraper.py 这里就去处理spiderMiddleWare class Scraper(object):……

阅读全文

最近文章

分类

标签

友情链接

其它