Scrapy框架是目前Python中最受欢迎的爬虫框架之一,那么我们今天就来具体了解一下Scrapy框架

什么是Scrapy框架?

Scrapy是一个快速、高层次、轻量级的屏幕抓取和web抓取的python爬虫框架

Scrapy的用途:

Scrapy用途非常广泛,主要用于抓取特定web站点的信息并从中提取特定结构的数据,除此之外,还可用于数据挖掘、监测、自动化测试、信息处理和历史片段(历史记录)打包等

了解完Scrapy框架后,我们就来看看怎么安装和使用吧

安装Scrapy

安装方法有两种:

1.  如果你电脑上有Anaconda的话,可以使用这种方法
windows+r  >>> cmd >>> conda install scrapy >>> 回车

2.第二种方法使用pip安装,不过你需要先下载Twisted插件

下载地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

(1)点击下载地址,进入后按  ctrl+f ,搜索twisted,然后下载对应版本

cp27:表示python2.7版本    cp36:表示python3.6版本

win32:表示Windows32位操作系统

(2)下载完成后进入终端,输入pip install Twisted-18.7.0-cp36-cp36m-win32.whl

Twisted-18.7.0-cp36-cp36m-win32.whl:文件名(你下载哪个文件就输入哪个文件的文件名,要输入全部路径)

安装完成后再输入pip install scrapy,回车

检测scrapy安装是否成功:在终端输入scrapy,出现以下内容就代表安装成功

Scrapy用法

安装完成后,就来看看如何使用scrapy框架吧

需要注意的是:scrapy的所有命令都是在windows的终端里完成的

1.Scrapy可以执行的命令

在终端中输入 scrapy,可以查看所有可执行的命令,现在我们来具体看一下这些命令

bench:性能测试

fetch:读取源代码

genspider:生成爬虫文件

runspider:运行爬虫文件

settings:爬虫设置

shell:终端操作

startproject:创建项目

version:查看版本

以上这些命令只要我们安装scrapy就可以执行

但是,以下几种命令需要我们创建具体的py文件之后才能执行,如何创建py文件请参考下文

check:检查代码是否出错

crawl:运行一个爬虫

edit:编辑爬虫

list:列出有效的爬虫

parse:解析url并打印出结果

2.创建一个scrapy框架,这是所有操作的前提

(1)在编译器(这里以PyCharm为例)里创建一个文件,文件名就命名为Scrapy吧

(2)创建scrapy框架之前,首先要确保把框架创建在我们刚刚新建的文件夹Scrapy中

打开计算机终端:输入cd  后面跟一个空格  然后把你新建的Scrapy文件直接拖拽进终端里

cd:change directory  修改位置到指定文件夹中

第一行是命令,第二行是结果

(3)创建scrapy框架,在终端中输入:scrapy startproject Demo

scrapy startproject:表示要执行创建一个新项目的命令  Demo:项目名,可以自定义命名

命令执行完成后,我们回到PyCharm中,可以看到Scrapy文件自动出现了许多新的文件

这里来解释一下各个文件的作用:

items.py:定义爬虫程序的数据模型

middlewares.py:定义数据模型中的中间件

pipelines.py:管道文件,负责对爬虫返回数据的处理

settings.py:爬虫程序设置,主要是一些优先级设置,优先级越高,值越小

scrapy.cfg:内容为scrapy的基础配置

这里我们要改一下settings.py里的内容:

(1)打开文件,找到代码的第22行,把 ROBOTSTXT_OBEY=True  改为  False,这行代码表示是否遵循爬虫协议,如果是Ture的可能有些内容无法爬取

(2)将第67到69行代码解注释,并把300改为1,这是优先级设置

至此,一个scrapy框架已经初步创建成功了。

现在,我们来具体了解一下scrapy框架是如何构成和如何运行的。

Scrapy框架图  绿色是数据流向

(注:以下图片来源于网络)

Scrapy Engine:引擎,处理整个框架的数据流

Scheduler:调度器,接收引擎发过来的请求,将其排至队列中,当引擎再次请求时返回

Downloader:下载器,下载所有引擎发送的请求,并将获取的源代码返回给引擎,之后由引擎交给爬虫处理

Spiders:爬虫,接收并处理所有引擎发送过来的源代码,从中分析并提取item字段所需要的数据,并将需要跟进的url提交给引擎,再次进入调度器

Item Pipeline:管道,负责处理从爬虫中获取的Item,并进行后期处理

Downloader Middlewares:下载中间件,可以理解为自定义扩展下载功能的组件

Spider Middlewares:Spider中间件,自定义扩展和操作引擎与爬虫之间通信的功能组件

Scrapy数据处理流程:

1. 当需要打开一个域名时,爬虫开始获取第一个url,并返回给引擎

2.引擎把url作为一个请求交给调度器

3.引擎再次对调度器发出请求,并接收上一次让调度器处理的请求

4.引擎将请求交给下载器

5.下载器下载完成后,作为响应返回给引擎

6.引擎把响应交给爬虫,爬虫开始进一步处理,处理完成后有两个数据,一个是需要跟进的url,另一个是获取到的item数据,然后把结果返回给引擎

7.引擎把需要跟进的url给调度器,把获取的item数据给管道

8.然后从第2步开始循环,知道获取信息完毕。只有调度器中没有任何请求时,程序才会停止

3.Scrapy的具体操作

(1)我们要在spiders文件夹中创建爬虫程序,但是现在的当前文件是Scrapy,所以我们要先改变当前文件位置至spiders中

方法同上,在终端中输入:cd 后面加一个空格 然后把spiders文件拖过去回车即可

(2)开始创建爬虫文件,这里的域名以百度为例

在终端中输入:scrapy genspider baidu_spider baidu.com      其中:baidu_spider 是文件名,可以自定义,但是不能与项目名一样

回车后会在spiders文件夹下创建一个baidu_spider.py文件,之后所有的操作都会在这个文件中的def parse中执行

baidu_spider.py文件内容:

当创建py文件成功后,我们再次输入命令:scrapy 会发现多了check,crawl,edit,list,parse这5个方法,具体作用请参考上文

(3)补全url并打印结果,因为scrapy会自动爬虫,所以我们只需要输出结果就行了

在终端中输入:scrapy crawl baidu_spider

如果成功会出现目标url的网页源码

今天关于Scrapy的讲解就到这里了,关于如何用Scrapy获取具体的数据之后我会继续讲解。

Python之Scrapy框架的安装和使用相关推荐

  1. python的scrapy框架的安装_Python爬虫基础(四)--Scrapy框架的安装及介绍

    Scrapy框架的介绍 安装: pip3 install Scrapy 安装测试: cmd命令行界面,输入:scrapy -h 框架安装完成: scrapy框架: 分为五个模块+两个中间件(5+2结构 ...

  2. python的scrapy框架的安装_Python3环境安装Scrapy爬虫框架过程及常见错误

    Windows •安装lxml 最好的安装方式是通过wheel文件来安装,http://www.lfd.uci.edu/~gohlke/pythonlibs/,从该网站找到lxml的相关文件.假如是P ...

  3. Python爬虫—Scrapy框架—Win10下载安装

    Python爬虫-Scrapy框架-Win10下载安装 1. 下载wheel 2.下载twisted 3. 下载pywin32 4. 下载安装Scrapy 5. 创建一个scrapy项目 6. fir ...

  4. python的Scrapy框架安装报错:building 'twisted.test.raiser' extension error

    python的Scrapy框架安装报错:building 'twisted.test.raiser' extension 在https://www.lfd.uci.edu/~gohlke/python ...

  5. Python爬虫——Scrapy 简介和安装

    文章目录 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 2.Scrapy 下载安装 Python爬虫--Scrapy 简介和安装 1.Scrapy 简介 Scrapy 简介 S ...

  6. 使用python的scrapy框架简单的爬取豆瓣读书top250

    使用python的scrapy框架简单的爬取豆瓣读书top250 一.配置scrapy环境 1. 配置相应模块 如果没有配置过scrapy环境的一般需要安装lxml.PyOpenssl.Twisted ...

  7. Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息

    Crawler之Scrapy:Python实现scrapy框架爬虫两个网址下载网页内容信息 目录 输出结果 实现代码 输出结果 后期更新-- 实现代码 import scrapy class Dmoz ...

  8. python测试框架nose研究_详解Python nose单元测试框架的安装与使用

    本文介绍了Python nose单元测试框架的安装与使用 ,分享给大家,具体如下: 安装(Python2下安装) pip install nose 原理与命名规则 Nose会自动查找源文件.目录或者包 ...

  9. 利用python的scrapy框架爬取google搜索结果页面内容

    scrapy google search 实验目的 爬虫实习的项目1,利用python的scrapy框架爬取google搜索结果页面内容. https://github.com/1012598167/ ...

最新文章

  1. 关于Spark NLP学习,你需要掌握的LightPipeline(附代码)| CSDN博文精选
  2. linux 设备管理工具 udev 规则编写
  3. 本周Github精选 | 这12个最新AI开源项目,你一定要收下
  4. 使用jOOQ和JavaFX将SQL数据转换为图表
  5. Ananagrams Uva 156
  6. 【汇编语言】王爽实验5(5)(6)的解答 建立数据类型匹配的观念
  7. 血型遗传关系c语言编程,根据血型遗传关系,编程实现:○1.输入
  8. Oracle从零开始2——简单查询
  9. Overleaf 显示中文
  10. bootstrap项目实例_101个Python项目打包放送,工作学习必备(源码放送)
  11. linux 用户设密码,linux 上添加用户,设置密码
  12. 拓端tecdat|R语言多元动态条件相关DCC-MVGARCH、常相关CCC-MVGARCH模型进行多变量股市波动率预测
  13. python进行数值模拟代码_数值模拟方法
  14. Android MD5 加密解密
  15. NLPIR分词使用说明
  16. jeeplus框架简介
  17. 怎么样添加桌面我的计算机,怎么样把我的电脑添加到桌面上
  18. 机器学习之语音生成音乐生成
  19. 一个男孩子如果到了23岁,就不会再长高了。。。
  20. 瑞典如何成为欧洲硅谷

热门文章

  1. 360电视盒子项目暂时搁浅
  2. springboot阿里云视频点播服务实现上传视频和删除功能
  3. 新年寄语 —— 奋斗2022
  4. 【我的故事】一个还不成熟的女程序员的苦恼
  5. 微服务架构下该如何技术选型呢?
  6. PTA 兔子繁衍问题
  7. gms签名不一致_云浮【签名墙】攻略
  8. python3多线程高容错爬取头条的街拍美图
  9. 界面适配华为手机的虚拟按键的解决方案
  10. flutter入门之理解Isolate及compute ——解决耗时操作卡住UI的问题