Scrapy入门学习
Scrapy入门学习
JieScrapy
一. Scrapy 简介
Scrapy 是一个用于抓取网站和提取结构化数据的应用程序框架,可用于各种有用的应用程序,如数据挖掘、信息处理或历史存档。
尽管 Scrapy 最初是为网络抓取设计的,但它也可以用于使用 API(如 Amazon Associates Web Services)提取数据,或用作通用网络爬虫。
其支持:
使用扩展 CSS 选择器和 XPath 表达式,以及使用正则表达式进行提取的帮助器方法,内置支持从 HTML/XML 源中选择和提取数据。
一个交互式外壳控制台(IPython 识别),用于尝试 CSS 和 XPath 表达式以抓取数据,在编写或调试爬虫时非常有用。
内置支持生成信息导出,格式多样(JSON、CSV、XML),并将其存储在多个后端(FTP、S3、本地文件系统)中。
强大的编码支持和自动检测,用于处理外来、非标准和损坏的编码声明。
强大的可扩展性支持,允许您使用信号和明确定义的 API(中间件、扩展和管道)插入您自己的功能。
用于处理的内置扩展和中间件范围广泛
- cookie 和会话处理
- HTTP 功能,如压缩、身份验证、缓存
- 用户代理欺骗
- robots.txt
- 抓取深度限制
- 以及更多
一个 Telnet 控制台,用于连接到 Scrapy 进程中运行的 Python 控制台,以自省和调试您的爬虫
以及其他好处,例如可重复使用的爬虫,用于从站点地图和 XML/CSV 信息中抓取站点,用于自动下载图像(或任何其他媒体)的媒体管道与抓取的项目相关联,一个缓存 DNS 解析器,以及更多!
二. Scrapy 的安装
建议在 <span style="color:red">
专用虚拟环境 中安装(如 Anaconda 或 Miniconda), 以避免安装时与系统发生冲突。
1. 进入项目所在目录
在文件路径处输入 cmd 进入命令提示符
2. 安装软件包 Scrapy
1 | pip install Scrapy |
3. 验证是否安装成功
进入激活后的虚拟环境对应项目目录,输入:
1 | scrapy version |
若出现对应 scrapy 版本号,即说明安装成功
三. Scrapy 的基础使用
1. 创建项目
在开始爬取之前,您必须设置一个新的 Scrapy 项目。进入您想要存储代码的目录并运行
1 | scrapy startproject tutorial |
这将创建一个 tutorial 目录,其中包含以下内容
1 | tutorial/ |
2. 在 tutorial/spiders 目录下创建保存爬虫代码的项目文件
这里保存为quotes_spider.py
1 | from pathlib import Path |
其中
1 | def start_requests(self): |
3.运行爬虫
在该项目顶级目录下输入一下命令(在 tutorial 下):
1 | scrapy crawl quotes |
这里的 quotes 必须跟 quotes_spider.py中的 name 属性保持一致
现在,检查当前目录中的文件,可以发现创建了两个新文件:quotes-1.html 和 quotes-2.html,其中包含各个 URL 的内容,与代码文件中的 parse 函数的指示一致。
过程为:
Scrapy 调度 scrapy.Request 对象,由 Spider 的 start_requests 方法返回。在收到每个对象的响应后,它实例化 Response 对象并调用与请求关联的回调方法(在本例中,是 parse 方法),将响应作为参数传递。
4.利用 css 选择器+Scrapy Shell 提取数据
注意:在 Windows 上,要使用双引号将参数 URL 括起来
例如:
在 shell 命令中输入一下命令
1 | scrapy shell "https://quotes.toscrape.com/page/1/" |
运行结果如下:
例如:
1 | response.css("title") |
官方文档见:https://docs.scrapy.net.cn/en/latest/