随笔分类 -  scrapy 基础组件

摘要:一 Scrapy框架--cookie的获取/传递/本地保存 1. 完成模拟登陆2. 登陆成功后提取出cookie,然后保存到本地cookie.txt文件中3. 再次使用时从本地的cookie.txt中读取cookie,省略模拟登陆. Cookie的传递和提取 from scrapy.http.coo 阅读全文
posted @ 2020-04-06 22:17 秋华 编辑
摘要:1. scrapy有三种方法模拟登陆 1.1直接携带cookies 1.2找url地址,发送post请求存储cookie 1.3找到对应的form表单,自动解析input标签,自动解析post请求的url地址,自动带上数据,自动发送请求 2. scrapy携带cookies直接获取需要登陆后的页面 阅读全文
posted @ 2020-04-06 12:21 秋华 编辑
摘要:scrapy-redis简介 scrapy-redis是scrapy框架基于redis数据库的组件,用于scrapy项目的分布式开发和部署。 有如下特征:  分布式爬取 您可以启动多个spider工程,相互之间共享单个redis的requests队列。最适合广泛的多个域名网站的内容爬取。  分布 阅读全文
posted @ 2020-04-06 12:19 秋华 编辑
摘要:下面我们来看看,scrapy-redis的每一个源代码文件都实现了什么功能,最后如何实现分布式的爬虫系统: connection.py 连接得配置文件 defaults.py 默认得配置文件 dupefilter.py 去重规则 picklecompat.py 格式化 pipelines.py 序列 阅读全文
posted @ 2020-04-05 20:54 秋华 编辑
摘要:一、调度器 配置 SCHEDULER = 'scrapy.core.scheduler.Scheduler' #表示scrapy包下core文件夹scheduler文件Scheduler类# 可以通过设置SCHEDULER值来使用自定义的调度器, 源码 import os import json i 阅读全文
posted @ 2020-04-05 20:52 秋华 编辑
摘要:写好自己的爬虫项目之后,可以自己定制爬虫运行的命令。 一、单爬虫 在项目的根目录下新建一个py文件,如命名为start.py,写入如下代码: from scrapy.cmdline import execute if __name__ == "__main__": execute(["scrapy" 阅读全文
posted @ 2020-04-05 20:07 秋华 编辑
摘要:通过scrapy提供的扩展功能, 我们可以编写一些自定义的功能, 插入到scrapy的机制中 一、编写一个简单的扩展 我们现在编写一个扩展, 统计一共获取到的item的条数我们可以新建一个extensions.py # extendsions.py # -*- coding: utf-8-*- fr 阅读全文
posted @ 2020-04-05 19:50 秋华 编辑
摘要:一、scrapy信号使用的简单实例 import scrapy from scrapy import signals from ccidcom.items import CcidcomItem class CcidcomSpider(scrapy.Spider): name = 'ccidcomSp 阅读全文
posted @ 2020-04-05 19:38 秋华 编辑
摘要:一、爬虫中间件简介 图 1-1 图 1-2 开始这一张之前需要先梳理一下这张图, 需要明白下载器中间件和爬虫中间件所在的位置 下载器中间件是在引擎(ENGINE)将请求推送给下载器(DOWNLOADER)时会执行到的 当下载器(DOWNLOADER)完成下载后, 将下载的Response对象传回给引 阅读全文
posted @ 2020-04-05 18:36 秋华 编辑
摘要:下载器中间件是介于Scrapy的request/response处理的钩子框架,是用于全局修改Scrapy request和response的一个轻量、底层的系统。 1.激活Downloader Middleware 要激活下载器中间件组件,将其加入到 DOWNLOADER_MIDDLEWARES 阅读全文
posted @ 2020-04-05 18:13 秋华 编辑
摘要:Scrapy 使用了 Twisted 异步非阻塞网络库来处理网络通讯,整体架构大致如下(绿线是数据流向): Scrapy主要包括了以下组件: 引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请 阅读全文
posted @ 2020-04-05 17:46 秋华 编辑

点击右上角即可分享
微信分享提示