Scrapy
Python之简
人一定要逼自己一把
展开
-
CrawlSpider 和 Item Loader
CrawlSpider 和 Item Loader文章目录CrawlSpider 和 Item Loader1、新建项目2、定义RuleRule参数LinkExtractor:3、Item Loader内置ProcessorIdentityTakeFirstJoinComposeMapComposeSelectJmes目的:实现一个通用爬虫,在新增一个爬虫时,只需要实现这些网站的爬取规则和提取...原创 2018-10-07 00:38:19 · 371 阅读 · 0 评论 -
Linux部署Scrapyd及配置功能
文章目录版本介绍1、Python3环境的安装2、Scrapyd的安装3、Scrapy配置文件4、Scrapy启动5、访问认证6、Scrapyd-client的安装7、Scrapyd API的安装8、Scrapyrt的安装9、Scrapyd的功能10、supervisor10、其他yum安装版本介绍python-3.6.5scrapyd-1.2.01、Python3环境的安装Centos下...原创 2018-09-30 22:19:45 · 6369 阅读 · 2 评论 -
Bloom Filter替换Scrapy-Redis集合去重
Bloom Filter替换Scrapy-Redis集合去重Scrapy-Redis源码解析传送门 Scrapy-Redis在dupefilter.py文件中主要使用Redis集合来保存Request的指纹,提供重复过滤。dupefilter.py文件修改修改其中的request_seen()方法。 def request_seen(self, request):...原创 2018-09-05 11:46:00 · 661 阅读 · 0 评论 -
Bloom Filter原理实现
Bloom FilterScrapy-Redis的存储Bloom Filter算法散列算法多个散列函数insert方法exists方法测试实例setbit和getbit的用法误区总结Bloom FilterScrapy-Redis的存储Scrapy-Redis将Request的指纹存储到Redis集合中,存储为长度为40,每一位都是16进制。 ...原创 2018-09-05 11:12:54 · 7169 阅读 · 1 评论 -
Scrapy-Redis源码解析及应用
Scrapy-Redis的使用安装源码分析picklecompat.py文件queue.py文件Base类FifoQueue类LifoQueue类PriorityQueue类dupefilter.py文件scheduler.py文件总结Scrapy-Redis的配置核心配置Redis连接配置第一种方式第二种方式调度队列配置持久化配置重爬Pip...原创 2018-09-05 01:20:42 · 1494 阅读 · 0 评论 -
Bloom Filter算法优化
Bloom Filter算法优化基于Redis的Bloom Filter去重,利用Redis的String数据结构,但Redis的String最大只能512M,所以数据过大的时候,需要申请多个去重块。Bloom Filter对一个很长的字符串进行哈希映射时会出错,常误判为已经存在,所以我们进行一次压缩(MD5\Sha1)。将去重队列和种子队列拆分到不同的机器上。种子seed数量越少...原创 2018-09-05 13:53:43 · 1116 阅读 · 0 评论 -
构建Scrapyd的Docker镜像
文章目录构建Scrapyd的Docker镜像1、编写Scrapy的配置文件2、新建一个requirements3、Dockerfile文件4、构建5、push镜像6、问题构建Scrapyd的Docker镜像Docker国内下载:地址curl -sSL https://get.daocloud.io/docker | sh加速器:地址直接拷贝执行1、编写Scrapy的配置文件新建一个s...原创 2018-09-30 22:21:42 · 2585 阅读 · 0 评论 -
Gerapy管理分布式Scrapyd
Gerapy管理分布式ScrapydGerapy: 基于Scrapy,Scrapyd,Scrapyd-Client,Scrapyd-API,Django和Vue.js的分布式爬虫管理框架地址。将命令对接图形界面,实现批量部署。更方便控制、管理、实时查看结果。关系: Gerapy和Scrapyd的关系就是,我们可以通过Gerapy中配置Scrapyd后,不实用命令,直接通过图形化界面开启...原创 2018-09-30 22:24:37 · 1331 阅读 · 0 评论 -
Splash的使用
SplashSplash是一个JavaScript渲染服务,是一个带有HTTP API的轻量级浏览器,同时它对接了Python中的Twisted和QT库。利用它,我们可以实现动态渲染页面的抓取。主要说一下Splash的简单属性和方法。文章目录Splash对象属性1、args2、js_enabled3、plugins_enable4、images_enable5、resource_timeou...原创 2018-10-08 23:14:01 · 5957 阅读 · 0 评论 -
Scrapy的Item Loaders
Scrapy的Item LoadersItem 提供抓取数据的容器,而Item Loader提供了填充该容器的机制。Item Loader用法from scrapy.loader import ItemLoaderfrom test.items import DemoItemdef parse(self, response): loader = ItemLoader(item=...原创 2019-01-04 10:31:29 · 599 阅读 · 0 评论