scrapy (一)
scrapy框架
scrapy 是一个爬虫框架,能够高效率,高层次的爬取页面的数据并进行处理。
在scrapy的英文文档中,有这样的一个流程图

scrapy 框架主要分为五大部分,spider, engine,scheduler,downloader,item pipelines
spider:是用户自己编写的爬虫主程序,爬取那些网站,获取网上的什么数据,等
engine: 引擎,是scrapy爬虫框架的主体结构,负责整个框架的运转,就像电脑的cpu一样,控制着框架中数据流的流动,同时负责调动各个组件的调用。
scheduler:调度器,相当于一个牧羊人,主要是把从spider中得到的Requests 放进队列中,按照顺序排列 听从引擎的指挥。
downloader: 下载器,负责解析Requests 得到response
item pipelines :item 是爬虫程序获取的数据 ,最后存入管道里 有pipelline进行数据的处理 比如写入数据库,保存本地json文件,excel文件等方式。
其大致流程为:
启动爬虫程序的时候,引擎(engine)根据spider中的start_urls列表中的url获取Request类 交给调度器(scheduler),调度器将得到的Requests放进队列中,然后引擎从队列中取出Requests 再交给下载器(downloader),下载器得到respons响应,引擎在将得到的响应发送给spider 主程序,进行解析,会得到解析的的数据(item)和Requests 引擎将得到的数据,放入pipelines中进行数据处理(保存数据库,保存本地json文件等),得到的Requests 引擎再交给调度器,放入队列中,从这一步骤开始循环,直到spider得到数据都是item放进pipeline里面进行处理 整个爬虫程序结束。
爬虫程序结构
|--------------------------------------------SpiderTest
|-----------------------------spiders
|---------__init__.py
|--------------test.py
|-------------------------__init__.py
|----------------------------items.py
|-------------------middlewares.py
|------------------------pipelines.py
|--------------------------settings.py
scrapy (一)的更多相关文章
- Scrapy框架爬虫初探——中关村在线手机参数数据爬取
关于Scrapy如何安装部署的文章已经相当多了,但是网上实战的例子还不是很多,近来正好在学习该爬虫框架,就简单写了个Spider Demo来实践.作为硬件数码控,我选择了经常光顾的中关村在线的手机页面 ...
- scrapy爬虫docker部署
spider_docker 接我上篇博客,为爬虫引用创建container,包括的模块:scrapy, mongo, celery, rabbitmq,连接https://github.com/Liu ...
- scrapy 知乎用户信息爬虫
zhihu_spider 此项目的功能是爬取知乎用户信息以及人际拓扑关系,爬虫框架使用scrapy,数据存储使用mongo,下载这些数据感觉也没什么用,就当为大家学习scrapy提供一个例子吧.代码地 ...
- ubuntu 下安装scrapy
1.把Scrapy签名的GPG密钥添加到APT的钥匙环中: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 6272 ...
- 网络爬虫:使用Scrapy框架编写一个抓取书籍信息的爬虫服务
上周学习了BeautifulSoup的基础知识并用它完成了一个网络爬虫( 使用Beautiful Soup编写一个爬虫 系列随笔汇总 ), BeautifulSoup是一个非常流行的Python网 ...
- Scrapy:为spider指定pipeline
当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置s ...
- scrapy cookies:将cookies保存到文件以及从文件加载cookies
我在使用scrapy模拟登录新浪微博时,想将登录成功后的cookies保存到本地,下次加载它实现直接登录,省去中间一系列的请求和POST等.关于如何从本次请求中获取并在下次请求中附带上cookies的 ...
- Scrapy开发指南
一.Scrapy简介 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. Scrapy基于事件驱动网络框架 Twis ...
- 利用scrapy和MongoDB来开发一个爬虫
今天我们利用scrapy框架来抓取Stack Overflow里面最新的问题(),并且将这些问题保存到MongoDb当中,直接提供给客户进行查询. 安装 在进行今天的任务之前我们需要安装二个框架,分别 ...
- python3 安装scrapy
twisted(网络异步框架) wget https://pypi.python.org/packages/dc/c0/a0114a6d7fa211c0904b0de931e8cafb5210ad82 ...
随机推荐
- Linux中PATH环境变量的作用和使用方法
关于PATH的作用:PATH说简单点就是一个字符串变量,当输入命令的时候LINUX会去查找PATH里面记录的路径.比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根 ...
- Springboot时间参数格式化
@Configuration public class DateTimeFormatConfiguration extends WebMvcConfigurerAdapter { @Value(val ...
- HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
Dragon Balls Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- webapi 异常处理
参考:https://docs.microsoft.com/zh-cn/aspnet/web-api/overview/error-handling/exception-handling ①HttpR ...
- 数据存储之归档解档 NSKeyedArchiver NSKeyedUnarchiver
在构建应用程序时,有一个重要的问题是如何在每次启动之间持久化数据,以便重现最后一次关闭应用前的状态.在iOS和OS X上,苹果提供了三种选择:Core Data.属性列表(Property List) ...
- async await循环请求
var sleep = function (item,time) { return new Promise(function (resolve, reject) { setTimeout(functi ...
- ImageMagick使用小结
#查看是否安装imagemagick sudo apt list | grep imagemagick #安装imagemagick sudo apt-get install imagemagick ...
- JQuery模拟网页中自定义鼠标右键菜单
题外话.......最近在开发一个网站项目的时候,需要用到网页自定义右键菜单,在网上看了各路前辈大神的操作,头晕目眩,为了达到目的,突然灵机一动,于是便有了这篇文章. 先放个效果图(沾沾自喜,大神勿喷 ...
- jquery实现复选框的全选、全不选、反选
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- md5,md2加密加盐
数组是没有重写object的toString()方法.byte[].toString()