安装scrapy

执行以下命令

pip install scrapy

image-1621783810042.png

安装完成

image-1621783843678.png

创建项目

使用命令行键入一下命令

scrapy startproject XXX # XXX为项目名称

image-1621783971442.png

  • 放置 spider 代码的目录文件 spiders(用于编写爬虫)。
  • 项目中的 item 文件 items.py(用于保存所抓取的数据的容器,其存储方式类似于 Python 的字典)。
  • 项目的中间件 middlewares.py(提供一种简便的机制,通过允许插入自定义代码来拓展 Scrapy 的功能)。
  • 项目的 pipelines 文件 pipelines.py(核心处理器)。
  • 项目的设置文件 settings.py。
  • 项目的配置文件 scrapy.cfg。

image-1621784335071.png

配置setting

创建 scrapy 项目以后,在 settings 文件中有这样的一条默认开启的语句。

image-1621784402733.png

robots.txt 是遵循 Robot 协议的一个文件,在 Scrapy 启动后,首先会访问网站的 robots.txt 文件,然后决定该网站的爬取范围。有时我们需要将此配置项设置为 False。在 settings.py 文件中,修改文件属性的方法如下。

ROBOTSTXT_OBEY = False

定义一个item容器

item 是存储爬取数据的容器,其使用方法和 Python 字典类似。它提供了额外的保护机制以避免拼写错误导致的未定义字段错误。

首先需要对所要抓取的网页数据进行分析,定义所爬取记录的数据结构。

编写爬虫逻辑

在编写爬虫逻辑之前,需要在 amazon_spider/spider 子文件下创建 .py 文件,用于定义爬虫的范围,也就是初始 URL。接下来定义一个名为 parse 的函数,用于解析服务器返回的内容。

首先在 CMD 中输入代码,并生成 spider 代码,如下所示:

cd amazon_spider
scrapy genspider monitor_stock amazon.com

此时 spider 文件夹下面会创建后缀名为 stock.py 的文件,该文件会生成 start_url,即爬虫的起始地址,并且创建名为 parse 的自定义函数,之后的爬虫逻辑将在 parse 函数中书写。文件详情如图所示:

image-1621836577088.png

随后在 spiders/monitor_stock.py 文件下,定义爬虫逻辑。

代码调试

为了调试方便,在项目目录下新建一个 main.py,调试代码如下:

from scrapy.cmdline import execute
execute(["scrapy","crawl","monitor_stock","-o","stock.json"])

其等价于在项目目录下执行命令“scrapy crawl monitor_stock -o stock.json”,将爬取的数据导出到 stock.json 文件。

运行main.py文件或者执行命令,将所抓取的数据以 JSON 格式保存在 item 容器中。

Last modification:July 27th, 2021 at 09:25 am
如果觉得我的文章对你有用,请作者喝杯咖啡把~