- 博客(11)
- 资源 (20)
- 收藏
- 关注
原创 scrapy_redis解析与实战应用
前言scrapy-redis是一个基于redis的scrapy组件,用于快速实现scrapy项目的分布式部署和数据爬取,其运行原理如下图所示。一、Scrapy-Redis特性分布式爬取你可以启动多个共享同一redis队列的爬虫实例,多个爬虫实例将各自提取到或者已请求的Requests在队列中统一进行登记,使得Scheduler在请求调度时能够对重复Requests进行过滤,即保证已经由某一个爬虫实例请求过的Request将不会再被其他的爬虫实例重复请求。分布式数据处理将scrapy爬取到的it
2022-03-25 16:41:09 593
原创 Scrapy 源码分析 6 Scrapy的Scheduler
简介Scrapy的Scheduler是scrapy中服务存储、调度Request,其中包括了对Request的去重、优先级设置等。1、BaseSchedulerMetaclass BaseSchedulerMeta(type): """ Metaclass to check scheduler classes against the necessary interface """ def __instancecheck__(cls, instance):
2022-03-25 14:37:14 760
原创 Scrapy 源码分析5 spider执行过程详解
前言运行scrapy的spider命令是scrapy crawl ***或者scrapy runspider ***.py背后处理逻辑基本一致,都是调用CrawlerProcess就行数据采集。下图是运行逻辑下图是核心处理方法 ExecutionEngine.open_spider下面是对上图过程的具体说明1、运行spider执行命令scrapy crawl ****或者scrapy runspider ***.py2、创建CrawlerProcesscmd.crawl
2022-03-25 12:50:23 1286
原创 scrapyd 配置信息和原理
一、scrapyd 配置scrapyd配置文件名scrapyd.conf 位置为执行scrapyd的目录[scrapyd]eggs_dir = eggs # egg文件存放目录 eggs_dir/project/****.egglogs_dir = logs # 日志文件存放目录 logs_dir/project/spidername/****.logitems_dir = items # item文件存放目录 items_dir/project/s
2022-03-24 11:58:03 872
原创 scrapyd 接口部分
前言scrapyd接口一共有10个一、daemonstatus.json检查节点服务的状态,支持GET方式curl http://localhost:6800/daemonstatus.jsonGEThttp://127.0.0.1:6800/daemonstatus.json{ "node_name": "***", "status": "ok", "pending": 0, "running": 2, "finished": 100}二、
2022-03-23 20:27:00 797
原创 scrapyd-client 中 scrapyd-client命令行使用
前言scrapyd-client 命令的使用主要就是发布egg到scrapyd,查看所有的projects,查看所有的spiders,运行指定spider等功能(weibo) >scrapyd-client -husage: scrapyd-client [-h] [-t TARGET] {deploy,projects,schedule,spiders} ...A command line interface for Scrapyd.positional arguments: {d
2022-03-23 15:50:49 613
原创 scrapyd-client 中 scrapyd-deploy命令行使用
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、scrapy.cfg配置信息二、命令行1.所以命令2.-l --list-targets3.-L --list-projects4.--debug5.--build-egg6.--include-deps7.-v --version8.--egg9.-p --project9.-a --deploy-all-targets10.target总结前言scrapyd-deploy命令主要用于scrapy项目打包以及发布到.
2022-03-23 09:35:26 1673
原创 Scrapy 源码分析 4 extensions middlewares详解
1 简介scrapy默认的extensions middlewares共有9个EXTENSIONS = {}EXTENSIONS_BASE = { 'scrapy.extensions.corestats.CoreStats': 0, 'scrapy.extensions.telnet.TelnetConsole': 0, 'scrapy.extensions.memusage.MemoryUsage': 0, 'scrapy.extensions.memdeb
2022-03-22 20:26:28 435
原创 Scrapy 源码分析 3 middlewares
1 简介Scrapy中有三种类型的middlewares,是Downloader middlewares,Spider middlewares,Extensions。Downloader middlewares:介于引擎和下载器之间,可以在网页在下载前、后进行逻辑处理; Spider middlewares:介于引擎和爬虫之间,在向爬虫输入下载结果前,和爬虫输出请求 / 数据后进行逻辑处理; Extensions : 处于整个流程当中,主要提供一些辅助和状态统计;2 共同基类 Middlewa
2022-03-22 19:30:11 565
原创 Scrapy 源码分析 2 Scrapy命令
1 简介源码截图scrapy一共有14类命令,每一类命令对应上不一个文件2 settings优先级说明SETTINGS_PRIORITIES = { 'default': 0, 'command': 10, 'project': 20, 'spider': 30, 'cmdline': 40,}class SettingsAttribute: """Class for storing data related to se
2022-03-22 12:25:43 722
原创 Scrapy 源码分析 1 架构概览
1 Scrapy 简介使用Scrapy的版本为2.5.0使用 Scrapy 开发一个爬虫非常简单,这里使用 Scrapy 的例子来说明如何编写一个简单爬虫:import scrapyclass IfengSpider(scrapy.Spider): name = 'ifeng' allowed_domains = ['ifeng.com'] start_urls = ['https://ifeng.com/'] def parse(self, resp.
2022-03-22 09:36:29 165
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人