#头条创作挑战赛# Scrapy 初始目录说明 Scrapy 在抓取网页数据方面是非常强大的。不仅仅是因为其天生异步,而且它里面的逻辑性 也非常紧密。当用户读其源码时,会对它有更深的认识,运用起来更能得心应手。俗话说得好: 知己知彼,方能百战百胜。当一个 Scrapy 项目被成功创建时,会自动生成一些文件。例如,创建 一个 TestDemo 项目,在其项目下会出现对应的文件目录,如下图所示。 scrapy.cfg:爬虫项目的配置文件。双击"TestDemo"文件夹,展开其下的文件,如下图所示。 Scrapy 的 TestDemo 目录中各个文件的作用,如下表所示。 根据上表需要补充说明如下两点: (1)下载中间件是介于 Scrapy 的 request/response 处理的钩子框架,是用于全局修改 Scrapy。request 和 response 的一个轻量、底层的系统。要使用下载中间件,就需要激活,要激活下载中间 件组件,将其加入 DOWNLOADER_MIDDLEWARES 设置中,需在 settings.py 中配置。当然,也 可以自己编写中间件,只要在 settings.py 中把其中的注释(#)去掉即可。 (2)同样地,要使用 Pipeline,也需要在 settings.py 中启用,把其中的注释(#)去掉即可。 Scrapy 的 settings.py 配置分析及示例 Scrapy 的 settings.py 配置分析如下表所示。 可以根据上表列出的配置项,并结合实际情况,配置出自己所需的爬虫配置。在此举例说明, 就会更直观。 例如,笔者设计的爬虫希望实现以下内容: (1)遵循爬虫协议。 (2)支持 Cookie。 (3)一次最大发送 18 个请求。 (4)开启限速功能,爬取速度为 5 秒爬一次。 (5)启用缓存,将已经发送的请求或相应的数据保存到缓存中,以便以后使用。 对应上面的需求,笔者在 settings.py 中配置如下。 ① ROBOTSTXT_OBEY = True。 ② COOKIES_ENABLED = True。 ③ CONCURRENT_REQUESTS = 18。 ④ AUTOTHROTTLE_ENABLED = True。 ⑤ AUTOTHROTTLE_START_DELAY = 5。 ⑥ HTTPCACHE_ENABLED = True