python爬虫之Scrapy框架(一)

本文介绍了Python的Scrapy爬虫框架,包括其架构、快速入门步骤以及爬取糗事百科的示例。通过创建项目、定义items、编写爬虫逻辑和设置pipelines,详细阐述了如何使用Scrapy进行数据抓取和处理。同时提到了settings.py的配置,如调整请求延迟、设置User-Agent以及启用pipelines。
摘要由CSDN通过智能技术生成

Scrapy框架

1.介绍

写一个爬虫,需要做很多的事情。比如:发送网络请求、数据解析、数据存储、反反爬虫机制(更换ip代理、设置请求头等)、异步请求等。这些工作如果每次都要自己从零开始写的话,比较浪费时间。因此Scrapy把一些基础的东西封装好了,在他上面写爬虫可以变的更加的高效(爬取效率和开发效率)。因此真正在公司里,一些上了量的爬虫,都是使用Scrapy框架来解决。

2.架构图

在这里插入图片描述

  1. 爬虫给引擎发送请求
  2. 引擎发给调度器,调度器接收到url以后将url生成requests对象并存储到队列中
  3. 引擎从调度器中取出请求
  4. 引擎将requests对象传输给下载器
  5. 下载器拿到请求从网上下载数据,再将数据组装成response对象返回给引擎
  6. 引擎拿到response对象,返回给爬虫
  7. 爬虫对数据再进行分析,留下需要的数据再将结果返回给引擎
  8. 引擎将数据给管道存到redis或者mysql或者mongodb中

我们的主要工作是写爬虫部分,引擎、调度器、下载器和管道已经封装好了。

3.快速入门

使用以下代码安装Scrapy框架,

pip install scrapy

我们需要在cmd中使用以下代码创建爬虫项目,

scrapy startproject 项目名称

我们可以看到Scrapy框架会自动创建一下文件,
在这里插入图片描述
这些文件分别为,

  1. items.py:用来存放爬虫爬取下来数据的模型
  2. middlewares.py:用来存放各种中间件的文件
  3. pipelines.py:用来将items的模型存储到本地磁盘中。
  4. settings.py:本爬虫的一些配置信息(比如请求头、多久发送一次请求、ip代理池等)
  5. scrapy.cfg:项目的配置文件
  6. spiders包:以后所有的爬虫,都是存放到这个里面

创建好项目后,我们cd到相应目录下,并使用下面的代码创建一个爬虫,

scrapy genspider 爬虫名称 "目标网站二级域名"

注意,爬虫名称不能和项目重名。

Scrapy框架会自动在spiders文件夹下面创建一个爬虫。

4.爬取糗事百科

我们使用以下代码创建项目和爬虫,

scrapy startproject qsbk
cd qsbk
scrapy genspider qsbk_demo "qiushibaike.com"

我们首先要补全items.py文件的代码,这个文件中存放爬虫爬取下来数据的模型,这些模型类似于django框架中的ORM模型,我们只需定义要爬取什么内容即可。例如,我们爬取糗事百科中的段子作者和内容,

import scrapy


class QsbkItem(scrapy.Item):
    author = scrapy.Field()  # 段子作者
    content = scrapy.Field()  # 段子内容

我们可以看到Scrapy框架中qsbk_demo.py中自动生成以下代码,

class QsbkDemoSpider(scrapy.Spider):
    name = 'qsbk_demo'  # 爬虫名称
    allowed_domains = ['qiushibaike.com']  # 目标网站url
    start_urls = ['https://www.qiushibaike.com/']  # 爬虫开始爬取的网页

    def parse(self, response
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值