Python爬虫(十六)爬虫框架scrapy环境搭建及初步使用

74 阅读3分钟

前面我们看的所有爬虫相关的知识都是基于request模块来实现的。

Python的爬虫是有一些很好用的框架。比如:Scrapy、PySpider等。

我这里主要来看下scrapy框架

Scrapy框架主要的特点:高性能的持久化存户,异步的数据下载,高性能的数据解析,分布式。里面几乎封装好了开发者所需要的所有模块,例如:request,代理,日志,url自动去重等

 

一:环境安装

这部分需要区别系统:

1:linux安装

pip install scrapy

 

2:windows安装

pip install wheel

下载twisted,下载地址为:www.lfd.uci.edu/~gohlke/pyt…

1.png

安装twisted:

pip install Twisted-20.3.0-cp37-cp37m-win_amd64.whl
pip install pywin32
pip install scrapy

 

测试,在命令终端中输入scrapy命令,没有报错即表示安装成功。

 

二:开始使用scrapy

1:创建项目

Scrapy的使用方法与我们之前看过的django差不多。都需要使用命令来创建一个项目,首先我们切换到一个目录,输入如下命令:

scrapy startproject scrpayProject

2.png

创建项目成功。

 

2:目录结构

3.png

scrapy.cfg:爬虫项目的配置文件。

4.png

init.py:爬虫项目的初始化文件,用来对项目做初始化工作。

items.py:爬虫项目的数据容器文件,用来定义要获取的数据。

pipelines.py:爬虫项目的管道文件,用来对items中的数据进行进一步的加工处理。

settings.py:爬虫项目的配置文件,包含了爬虫项目的设置信息。

middlewares.py:爬虫项目的中间件文件,

spiders:爬虫目录(放置爬虫原文件)

 

3 :开始使用scrapy框架

爬虫的原文件统一放在spiders目录下。

(1):创建爬虫文件

首先我们在spiders目录下创建一个爬虫文件,注意,这里不是让你手动后去创建,要使用命令创建:

scrapy genspider spiderName www.xxx.com

(2):创建文件编写

我们在爬虫文件中写一段程序:

import scrapy

class BlogSpider(scrapy.Spider):
# 爬虫文件的名称,爬虫原文件的唯一标识
name = 'blog'
# 允许爬取的域名,主要用来限制 start_urls 中的域名,一般不用
allowed_domains = ['guanchao.site','l.guanchao.site']
# 起始的url列表:该列表中存放的url会被scrapy自动进行请求的发送
start_urls = ['guanchao.site/','https://…']

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

 

(3):执行爬虫文件

命令:

scrapy crawl blog

输出:

5.png

输出文字内容,截取部分图片,最好亲自试一下。

 

当然,如果不喜欢每次输出这么多的日志内容,我们可以在执行爬虫命令后加参数,例如:

scrapy crawl blog –nolog

输出:

<200 https://guanchao.site/>
<200 https://l.guanchao.site/>

 

但是这样会有一个问题,就是在程序出错的时候,他不会输出任何错误信息:

这就有点不好了。那么改如何解决呢?

 

在上一级目录的setting.py文件中配置日志输出等级:

Obey robots.txt rules(是否遵从网站 robots.txt协议)

ROBOTSTXT_OBEY = False

# 日志输出等级
LOG_LEVEL = 'ERROR'

 

我们在使用scrapy crawl blog输出,就没有那么多多余的日志,同时,错误的时候也会有报错信息的输出了。

 

以上大概就是scrapy的初步认识。

 

有好的建议,请在下方输入你的评论。