scrapy认识
1.scrapy的概念及流程
- scrapy是一个Python编写的开源网络爬虫框架,它是一个被设计用于爬取网络数据,提取结构性数据的框架
- scrapy 使用了Twisted异步网络框架,可以加快下载速度
- scrapy文档
2.scrapy框架的作用-少量的代码,快速的爬取
3.scrapy的工作流程
- 爬虫流程
- 资源定位 url
- 发起请求,获取响应 response
- 解析数据 lxml json bs4
- 保存数据
- 上述流程改写:
- scrapy流程
绿线表示数据流
所有的模块相互独立,置于引擎交互- scarpy的三个内置对象
- request请求对象:由 url method post_data headers等构成
- response响应对象:由url body status headers 等构成
- item数据对象:本质是字典
- scrapy每个模块的作用:
- scarpy的三个内置对象
"""
1.scrapy初识
创建项目 scrapy startproject 项目名称
生成一个爬虫 scrapy genspider 爬虫名 允许爬取的域名
运行框架:scrapy crawl 爬虫名
1.资源定位,发起请求(爬虫文件spider)
2.清洗,提取数据(爬虫文件spider)
3.定义数据模板item,并传数据到管道(items文件)
4.管道保存数据(管道文件pipline)
2.项目结构文件认识:
items:保存数据定义文件
middlewares:自定义中间件文件
pipelines :管道,保存数据
settings:设置文件,可开启管道等
spider:爬虫文件,资源定位,发起请求获取响应,清洗提取数据,
接受下载中间件传过来的response,就是响应数据
#注意:类中必须有parser的解析
#若提取的url要再次发起请求,需属于允许域名范围,起始url不用遵守
#启动爬虫是在项目路径下启动的
#解析函数parser中yield传递的对象只能是:BaseItem,Request,dict,None
提取数据:
response.xpath()返回的是一个 类似 列表的类型,其中包含selector对象,操作和列表一些额外的方法
extract额外方法():返回的是一个包含有字符串的列表
extract_first():返回列表中的第一个字符串,列表为空返回None
get():得到第一条数据
getall():取出所有数据,以列表形式展现
复习response常用:
response.url:当前响应的url
response.request.url:当前响应对应的请求的url地址
response.headers:响应头
response.request.headers:当前响应的请求头
response.body:响应体,也就是html代码,byte类型
response.status:响应状态码
保存数据(利用pipeline管道)
可定义一个管道类,重写process_item(中编写保存逻辑)方法
process_item方法处理完item之后必须返回给引擎 即return item
重定义的管道类,要在配置文件settings中,启用并配置管道
配置项中的键:项目目录.文件.定义的管道类
配置项中的值:为使用管道的顺序,值越小越优先执行,一般在1000以内
1.scrapy组成部分:
1.引擎:负责总体的是调度--大脑
2.调度器(scheduler)
接收引擎发送过来的request对象
弹出request对象,交给引擎
3.下载器(downloader)
接收引擎发送过来的request对象
发送请求,获取响应,把响应给引擎
4.爬虫组件(spiders)
接收引擎传递过来的response,解析response
提取出来的数据交给引擎
提取url,构造Requests请求,交给引擎
5.管道(pipeline)
保存数据
"""
- 观自在,本自在,大自在
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhgahbbg
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
怎样阻止微信小程序自动打开
PHP中文网 06-13 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
photoshop蒙版画笔没反应怎么办
PHP中文网 06-24