Scrapy是一个快速的高级Web爬网和Web爬网框架,用于对网站进行爬网并从其页面中提取结构化数据。它可以用于从数据挖掘到监视和自动化测试的广泛用途。
Scrapy 简单介绍
Scrapy是用于爬网网站和提取结构化数据的应用程序框架,可用于各种有用的应用程序,例如数据挖掘,信息处理或历史档案。
即使Scrapy最初是为Web抓取而设计的,它也可以用于使用API(例如Amazon Associates Web Services)或用作通用Web搜寻器来提取数据。
Scrapy框架因为功能十分强大,所以依赖很多库,不能直接安装,需要先安装依赖库
安装方法
支持的Python版本
Scrapy需要Python 3.6+,或者CPython实现(默认)或PyPy 7.2.0+实现(请参阅替代实现)。
如果您使用的是Anaconda或Miniconda,则可以从conda- forge渠道安装该软件包,该渠道包含适用于Linux,Windows和macOS的最新软件包。
安装须知
Scrapy是用纯Python编写的,并且依赖于一些关键的Python包(以及其他一些包):
- lxml,一个高效的XML和HTML解析器
- parsel,是在lxml之上编写的HTML / XML数据提取库,
- w3lib,用于处理URL和网页编码的多功能帮助器
- twisted的异步网络框架
- cryptography 和 pyOpenSSL, 以处理各种网络级安全需求
测试Scrapy的最低版本为:
- 扭曲的14.0
- lxml 3.4
- pyOpenSSL 0.14
Scrapy可以使用这些软件包的较旧版本,但不能保证它将继续运行,因为尚未对其进行测试。
正式安装
Windows上安装Scrapy
尽管可以使用pip在Windows上安装Scrapy,但我们建议您安装Anaconda或Miniconda并使用conda - forge渠道中的软件包 ,这将避免大多数安装问题。
安装Anaconda或Miniconda后,请使用以下方法安装Scrapy:
conda install -c conda-forge scrapy
要在Windows上使用pip
以下方法安装Scrapy :
警告:此安装方法需要“ Microsoft Visual C ++”来安装一些Scrapy依赖项,与Anaconda相比,它需要更多的磁盘空间。
下载并执行Microsoft C ++生成工具以安装Visual Studio安装程序。
运行Visual Studio安装程序。
在“工作量”部分下,选择“ C ++构建工具”。
检查安装详细信息,并确保选择以下软件包作为可选组件:
- MSVC (例如MSVC v142-VS 2019 C ++ x64 / x86构建工具(v14.23))
- Windows SDK (例如Windows 10 SDK(10.0.18362.0))
安装Visual Studio生成工具。
现在,您应该可以使用安装Scrapypip
。
Ubuntu 14.04或更高版本
目前,Scrapy已使用最新版本的lxml,twisted和pyOpenSSL进行了测试,并且与最新的Ubuntu发行版兼容。但是它也应该支持Ubuntu的较早版本,例如Ubuntu 14.04,尽管存在TLS连接的潜在问题。
不要使用python-scrapy
Ubuntu提供的软件包,它们通常太旧且太慢,无法赶上最新的Scrapy。
要在Ubuntu(或基于Ubuntu的)系统上安装Scrapy,您需要安装以下依赖项:
sudo apt-get install python3 python3-dev python3-pip libxml2-dev libxslt1-dev zlib1g-dev libffi-dev libssl-dev
python3-dev
,zlib1g-dev
,libxml2-dev
和libxslt1-dev
所需要的lxml
libssl-dev
并且libffi-dev
是必需的cryptography
在virtualenv内,您可以pip
在之后安装Scrapy :
pip install scrapy
笔记
相同的非Python依赖项可用于在Debian Jessie(8.0)及更高版本中安装Scrapy。
Mac系统上安装
构建Scrapy的依赖项需要C编译器和开发标头的存在。在macOS上,这通常由Apple的Xcode开发工具提供。要安装Xcode命令行工具,请打开一个终端窗口并运行:
xcode-select --install
存在一个已知问题,无法pip
更新系统软件包。必须解决此问题才能成功安装Scrapy及其依赖项。以下是一些建议的解决方案:
(推荐) 不要使用系统python,安装一个新的,更新的版本,该版本应与系统的其余部分不冲突。使用自制程序包管理器的方法如下:
按照https://brew.sh/中的说明安装自制软件
更新PATH
变量以声明应在系统软件包之前使用自制软件软件包(如果将zsh用作默认外壳,请更改.bashrc
为.zshrc
一致):echo "export PATH=/usr/local/bin:/usr/local/sbin:$PATH" >> ~/.bashrc
重新加载.bashrc
以确保已进行更改:source ~/.bashrc
安装python:brew install python
最新版本的python已pip
捆绑在一起,因此您无需单独安装。如果不是这种情况,请升级python:brew update; brew upgrade python
(可选) 在Python虚拟环境中安装Scrapy。
此方法是解决上述macOS问题的一种解决方法,但它是管理依赖项的总体良好做法,可以补充第一种方法。
这些解决方法中的任何一种之后,您都应该能够安装Scrapy:
pip install Scrapy