JavaShuo
栏目
标签
Python爬虫教程-30-Scrapy 爬虫框架介绍
时间 2019-11-12
标签
python
爬虫
教程
scrapy
框架
介绍
栏目
Python
繁體版
原文
原文链接
从本篇开始学习 Scrapy 爬虫框架
html
Python爬虫教程-30-Scrapy 爬虫框架介绍
框架:框架就是对于相同的类似的部分,代码作到不出错,而咱们就能够将注意力放到咱们本身的部分了
常见爬虫框架:
scrapy
pyspider
crawley
Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 能够应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中
Scrapy 官方文档
https://doc.scrapy.org/en/latest/
http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html
Scrapy 的安装
能够直接在 Pycharm 进行安装
【PyCharm】>【file】>【settings】>【Project Interpreter】>【+】 >【scrapy】>【install】
具体操做截图:
点击左下角 install 静静等待
测试 Scrapy 是否安装成功
进入当前所在的环境
输入 scrapy 命令
截图:
这里就说明安装成功l
Scrapy 概述
包含各个部件
ScrapyEngine:神经中枢,大脑,核心
Scheduler 调度器:负责处理请求,引擎发来的 request 请求,调度器须要处理,而后交换引擎
Downloader 下载器:把引擎发来的 requests 发出请求,获得 response
Spider 爬虫:负责把下载器获得的网页/结果进行分解,分解成数据 + 连接
ItemPipeline 管道:详细处理 Item
DownloaderMiddleware 下载中间件:自定义下载的功能扩展组件
SpiderMiddleware 爬虫中间件:对 spider 进行功能扩展
数据流图:
绿色箭头是数据的流向
由 Spider 开始 Requests, Requests, Responses, Items
爬虫项目大体流程
1.新建项目:scrapy startproject xxx项目名
2.明确须要爬取的目标/产品:编写 item.py
3.制做爬虫:地址 spider/xxspider.py 负责分解,提取下载的数据
4.存储内容:pipelines.py
模块介绍
ItemPipeline
对应 pipelines 文件
爬虫提取出数据存入 item 后,item 中保存的数据须要进一步处理,好比清洗,去虫,存储等
Pipeline 须要处理 process_item 函数
process_item
spider 提取出来的 item 做为参数传入,同时传入的还有 spider
此方法必须实现
必须返回一个 Item 对象,被丢弃的 item 不会被以后的 pipeline
_ init _:构造函数
进行一些必要的参数初始化
open_spider(spider):
spider 对象对开启的时候调用
close_spider(spider):
当 spider 对象被关闭的时候调用
Spider
对应的是文件夹 spider 下的文件
_ init _:初始化爬虫名称,start _urls 列表
start_requests:生成 Requests 对象交给 Scrapy 下载并返回 response
parse:根据返回的 response 解析出相应的 item,item 自动进入 pipeline:若是须要,解析 url,url自动交给 requests 模块,一直循环下去
start_requests:此方法尽能被调用一次,读取 start _urls 内容并启动循环过程
name:设置爬虫名称
start_urls:设置开始第一批爬取的 url
allow_domains:spider 容许去爬的域名列表
start_request(self):只被调用一次
parse:检测编码
log:日志记录
中间件(DownloaderMiddlewares)
什么是中间件?
中间件是处于引擎和下载器中间的一层组件,能够有多个
参照上面的流程图,咱们把中间件理解成成一个通道,简单说,就是在请求/响应等传输的时候,在过程当中设一个检查哨,例如:
1.身份的假装:
UserAgent,咱们假装身份,不是在开始请求的时候就设置好,而是在请求的过程当中,设置中间件,当检测到发送请求的时候,拦下请求头,修改 UserAgent 值
2.筛选响应数据:
咱们最开始获得的数据,是整个页面,假设某个操做,须要咱们过滤掉全部图片,咱们就能够在响应的过程当中,设置一个中间件
比较抽象,可能不是很好理解,可是过程是其实很简单的
在 middlewares 文件中
须要在 settings 中设置以是生效
通常一个中间件完成一项功能
必须实现如下一个或者多个方法
process_request (self, request, spider)
在请求的过程当中被调用
必须返回 None 或 Response 或 Request 或 raise IgnoreRequest
若是返回 None:scrapy 将继续处理 request
若是返回 Request:scrapy 会中止调用 process_request 并冲洗调度返回的 request
若是返回 Response:scrapy 将不会调用其余的 process_request 或者 process _exception,直接将该 response 做为结果返回,同时会调用 process _response
process_response (self, request, spider)
每次返回结果的时候自动调用
下一篇连接:
Python爬虫教程-31-建立 Scrapy 爬虫框架项目
更多文章连接:
Python 爬虫随笔
本笔记不容许任何我的和组织转载
相关文章
1.
Python爬虫教程-01-爬虫介绍
2.
Python爬虫教程-30-Scrapy 爬虫框架介绍
3.
python爬虫实例介绍-python爬虫--爬虫介绍
4.
Scrapy爬虫框架介绍
5.
Scrapy爬虫框架——介绍
6.
scrapy爬虫框架介绍
7.
Python爬虫教程-32-Scrapy 爬虫框架项目 Settings py 介绍
8.
python爬虫入门教程-Python 爬虫介绍
9.
python爬虫之scrapy框架介绍
10.
Python爬虫之Scrapy框架介绍
更多相关文章...
•
网站主机 介绍
-
网站主机教程
•
ASP.NET MVC 教程
-
ASP.NET 教程
•
Java 8 Stream 教程
•
Java Agent入门实战(一)-Instrumentation介绍与使用
相关标签/搜索
爬虫-反爬虫
爬虫
python--爬虫
Python爬虫
Python爬虫5
python爬虫02
Python爬虫4
Python爬虫教学
python爬虫-爬微博
nodeJS爬虫
网络爬虫
Python
Hibernate教程
Spring教程
MyBatis教程
教程
架构
0
分享到微博
分享到微信
分享到QQ
每日一句
每一个你不满意的现在,都有一个你没有努力的曾经。
最新文章
1.
Android Studio3.4中出现某个项目全部乱码的情况之解决方式
2.
Packet Capture
3.
Android 开发之 仿腾讯视频全部频道 RecyclerView 拖拽 + 固定首个
4.
rg.exe占用cpu导致卡顿解决办法
5.
X64内核之IA32e模式
6.
DIY(也即Build Your Own) vSAN时,选择SSD需要注意的事项
7.
选择深圳网络推广外包要注意哪些问题
8.
店铺运营做好选款、测款的工作需要注意哪些东西?
9.
企业找SEO外包公司需要注意哪几点
10.
Fluid Mask 抠图 换背景教程
本站公众号
欢迎关注本站公众号,获取更多信息
相关文章
1.
Python爬虫教程-01-爬虫介绍
2.
Python爬虫教程-30-Scrapy 爬虫框架介绍
3.
python爬虫实例介绍-python爬虫--爬虫介绍
4.
Scrapy爬虫框架介绍
5.
Scrapy爬虫框架——介绍
6.
scrapy爬虫框架介绍
7.
Python爬虫教程-32-Scrapy 爬虫框架项目 Settings py 介绍
8.
python爬虫入门教程-Python 爬虫介绍
9.
python爬虫之scrapy框架介绍
10.
Python爬虫之Scrapy框架介绍
>>更多相关文章<<