Loading... <div class="tip share">请注意,本文编写于 570 天前,最后修改于 562 天前,其中某些信息可能已经过时。</div> ## 安装scrapy 执行以下命令 ```shell pip install scrapy ``` ![image-1621783810042.png][1] 安装完成 ![image-1621783843678.png][2] ## 创建项目 使用命令行键入一下命令 ```shell scrapy startproject XXX # XXX为项目名称 ``` ![image-1621783971442.png][3] - 放置 spider 代码的目录文件 spiders(用于编写爬虫)。 - 项目中的 item 文件 items.py(用于保存所抓取的数据的容器,其存储方式类似于 Python 的字典)。 - 项目的中间件 middlewares.py(提供一种简便的机制,通过允许插入自定义代码来拓展 Scrapy 的功能)。 - 项目的 pipelines 文件 pipelines.py(核心处理器)。 - 项目的设置文件 settings.py。 - 项目的配置文件 scrapy.cfg。 ![image-1621784335071.png][4] ## 配置setting 创建 scrapy 项目以后,在 settings 文件中有这样的一条默认开启的语句。 ![image-1621784402733.png][5] robots.txt 是遵循 Robot 协议的一个文件,在 Scrapy 启动后,首先会访问网站的 robots.txt 文件,然后决定该网站的爬取范围。有时我们需要将此配置项设置为 False。在 settings.py 文件中,修改文件属性的方法如下。 ```shell ROBOTSTXT_OBEY = False ``` ## 定义一个item容器 item 是存储爬取数据的容器,其使用方法和 Python 字典类似。它提供了额外的保护机制以避免拼写错误导致的未定义字段错误。 首先需要对所要抓取的网页数据进行分析,定义所爬取记录的数据结构。 ## 编写爬虫逻辑 在编写爬虫逻辑之前,需要在 amazon_spider/spider 子文件下创建 .py 文件,用于定义爬虫的范围,也就是初始 URL。接下来定义一个名为 parse 的函数,用于解析服务器返回的内容。 首先在 CMD 中输入代码,并生成 spider 代码,如下所示: ```shell cd amazon_spider scrapy genspider monitor_stock amazon.com ``` 此时 spider 文件夹下面会创建后缀名为 stock.py 的文件,该文件会生成 start_url,即爬虫的起始地址,并且创建名为 parse 的自定义函数,之后的爬虫逻辑将在 parse 函数中书写。文件详情如图所示: ![image-1621836577088.png][6] 随后在 spiders/monitor_stock.py 文件下,定义爬虫逻辑。 ## 代码调试 为了调试方便,在项目目录下新建一个 main.py,调试代码如下: ```python 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 容器中。 [1]: https://www.pyduck.com/usr/uploads/2021/07/3738692493.png [2]: https://www.pyduck.com/usr/uploads/2021/07/3773692473.png [3]: https://www.pyduck.com/usr/uploads/2021/07/3625002960.png [4]: https://www.pyduck.com/usr/uploads/2021/07/1698134311.png [5]: https://www.pyduck.com/usr/uploads/2021/07/3667876469.png [6]: https://www.pyduck.com/usr/uploads/2021/07/1325860184.png Last modification:July 27, 2021 © Allow specification reprint Support Appreciate the author AliPayWeChat Like 0 如果觉得我的文章对你有用,请作者喝杯咖啡把~