安装Scrapy以及基本介绍

scrapy框架是目前最受欢迎的爬虫框架之一,今天我们来具体的去了解一下scrapy框架。

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

scrapy用途十分的广泛,主要的去用于web站点的信息并且从中提取特定的结构的数据,除此之外,scrapy还可以用于数据挖掘,检测,自动化测试,信息处理等等,首先我们来看一下该怎么安装scrapy。

安装Scrapy

安装的方法有两种。

1.如果你的电脑上安装的有Anaconda的话,可以直接windows+R,输入cmd,进入终端,输入conda install scrapy,点击回车,静静的等待安装成功就可以了。

2.假如未安装Anaconda,使用pip方式安装,首先我们需要来下载一些插件。

下载地址:::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

这个命令是你下载的是哪个,就输入那个。

安装完成后,就输入pip install scrapy ,按下回车。

检验scrapy是否安装成功,输入scrapy,出现以下的内容就安装成功了。

Scrapy用法

安装完成之后我们那可以来小试,了解一下scrapy,注意:scrapy的命令都是在终端里面完成的。

1.scrapy可执行的命令

上图所示,显示的就是scrapy可以执行的命令,有以下。

bench:性能测试

fetch:读取源代码

genspider:生成爬虫文件

runspider:运行爬虫文件

setting:爬虫设置

shell:终端操作

startproject:创建新的项目

version:查看版本

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

1.在PyCharm里创建一个文件名,文件名字为Python,打开终端,输入cd+空格+Python的路径,按下回车键。

2.输入命令:scrapy startproject python. python为项目的名字,这个是自定义的,按下回车键。

3.输入命令:cd+空格+python,回车,继续输入:cd+空格+python,按下回车键。

4.输入命令:scrapy genspider baid baidu.com。生成一个爬虫文件,这里是以百度为例。

完毕后,打开PyCharm,我们可以看到Python文件下多了许多新的文件。

解释一下上图中各部分文件的作用:

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

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

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

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

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

我们进行爬虫的操作大部分是在baid.py中完成的,点击进入:

# -*- coding: utf-8 -*-
import scrapy


class BaidSpider(scrapy.Spider):
    # 爬虫名
    name = 'baid'
    #允许爬虫的范围
    allowed_domains = ['baidu.com']
    ## 通常会修改爬虫程序的start_url,这个是第一批要进行访问的网址,这里我们补全网址。
    start_urls = ['http://www.baidu.com/']

    def parse(self, response):
        print(response.text)

另外,我们需要修改一下settings.py里面的内容

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

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

在终端中输出运行的命令,scrapy crawl baid,按下回车键。

成功出现目标url的网页源代码即为成功。

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步开始循环,知道获取信息完毕。只有调度器中没有任何请求时,程序才会停止

今天关于Scrapy的介绍就到这里了,关于以后用scrapy获取具体的数据,之后,我会持续更新的。

猜你喜欢

转载自blog.csdn.net/qq_42543244/article/details/81411504