qq空间做网站,备案个人可以做视频网站,网站开发平台目录,精通网站建设工资多少钱请求库的安装
爬虫可以简单分为几步#xff1a;抓取页面、分析页面和存储数据。
在抓取页面的过程中#xff0c;我们需要模拟浏览器向服务器发出请求#xff0c;所以需要用到一些 Python 库来实现 HTTP 请求操作。在本教程中#xff0c;我们用到的第三方库有 requests、S…请求库的安装
爬虫可以简单分为几步抓取页面、分析页面和存储数据。
在抓取页面的过程中我们需要模拟浏览器向服务器发出请求所以需要用到一些 Python 库来实现 HTTP 请求操作。在本教程中我们用到的第三方库有 requests、Selenium 和 aiohttp 等。
在本节中我们介绍一下这些请求库的安装方法。
requests 的安装
由于 requests 属于第三方库也就是 Python 默认不会自带这个库所以需要我们手动安装。下面我们首先看一下它的安装过程。
1. 相关链接 GitHubhttps://github.com/requests/requests PyPIhttps://pypi.python.org/pypi/requests 官方文档http://www.python-requests.org 中文文档http://docs.python-requests.org/zh_CN/latest
2. pip 安装
无论是 Windows、Linux 还是 Mac都可以通过 pip 这个包管理工具来安装。
在命令行界面中运行如下命令即可完成 requests 库的安装
pip3 install requests
这是最简单的安装方式推荐使用这种方法安装。
3. wheel 安装
wheel 是 Python 的一种安装包其后缀为 .whl在网速较差的情况下可以选择下载 wheel 文件再安装然后直接用 pip3 命令加文件名安装即可。
不过在这之前需要先安装 wheel 库安装命令如下
pip3 install wheel
然后到 PyPI 上下载对应的 wheel 文件如最新版本为 2.17.3则打开requests · PyPI下载 requests-2.17.3-py2.py3-none-any.whl 到本地。
随后在命令行界面进入 wheel 文件目录利用 pip 安装即可
pip3 install requests-2.17.3-py2.py3-none-any.whl
这样我们也可以完成 requests 的安装。
4. 源码安装
如果你不想用 pip 来安装或者想获取某一特定版本可以选择下载源码安装。
此种方式需要先找到此库的源码地址然后下载下来再用命令安装。
requests 项目的地址是https://github.com/kennethreitz/requests
可以通过 Git 来下载源代码
git clone git://github.com/kennethreitz/requests.git
或通过 curl 下载
curl -OL https://github.com/kennethreitz/requests/tarball/master
下载下来之后进入目录执行如下命令即可安装
cd requests
python3 setup.py install
命令执行结束后即可完成 requests 的安装。由于这种安装方式比较烦琐后面不再赘述。
5. 验证安装
为了验证库是否已经安装成功可以在命令行模式测试一下
$ python3import requests
首先输入 python3进入命令行模式然后输入上述内容如果什么错误提示也没有就证明已经成功安装了 requests。
Selenium 的安装
Selenium 是一个自动化测试工具利用它我们可以驱动浏览器执行特定的动作如点击、下拉等操作。对于一些 JavaScript 渲染的页面来说这种抓取方式非常有效。下面我们来看看 Selenium 的安装过程。
1. 相关链接 官方网站Selenium GitHubhttps://github.com/SeleniumHQ/selenium/tree/master/py PyPIselenium · PyPI 官方文档Selenium with Python — Selenium Python Bindings 2 documentation 中文文档Selenium with Python中文翻译文档 — Selenium-Python中文文档 2 documentation
2. pip 安装
这里推荐直接使用 pip 安装执行如下命令即可
pip3 install selenium
3. wheel 安装
此外也可以到 PyPI 下载对应的 wheel 文件进行安装下载地址为 selenium · PyPI如最新版本为 3.4.3则下载 selenium-3.4.3-py2.py3-none-any.whl 即可。
然后进入 wheel 文件目录使用 pip 安装
pip3 install selenium-3.4.3-py2.py3-none-any.whl
4. 验证安装
进入 Python 命令行交互模式导入 Selenium 包如果没有报错则证明安装成功
$ python3import selenium
但这样做还不够因为我们还需要用浏览器如 Chrome、Firefox 等来配合 Selenium 工作。
后面我们会介绍 Chrome、Firefox、PhantomJS 三种浏览器的配置方式。有了浏览器我们才可以配合 Selenium 进行页面的抓取。
ChromeDriver 的安装
前面我们成功安装好了 Selenium 库但是它是一个自动化测试工具需要浏览器来配合使用本节中我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。
首先下载 Chrome 浏览器方法有很多在此不再赘述。
随后安装 ChromeDriver。因为只有安装 ChromeDriver才能驱动 Chrome 浏览器完成相应的操作。下面我们来介绍下怎样安装 ChromeDriver。
1. 相关链接 官方网站https://sites.google.com/a/chromium.org/chromedriver 下载地址https://chromedriver.storage.googleapis.com/index.html
2. 准备工作
在这之前请确保已经正确安装好了 Chrome 浏览器并可以正常运行安装过程不再赘述。
3. 查看版本
点击 Chrome 菜单 “帮助”→“关于 Google Chrome”即可查看 Chrome 的版本号如图 这里我的 Chrome 版本是 58.0。
请记住 Chrome 版本号因为选择 ChromeDriver 版本时需要用到。
4. 下载 ChromeDriver
打开 ChromeDriver 的官方网站可以看到最新版本为 2.31其支持的 Chrome 浏览器版本为 58~60官网页面如图。 如果你的 Chrome 版本号是 58~60那么可以选择此版本下载。
如果你的 Chrome 版本号不在此范围可以继续查看之前的 ChromeDriver 版本。每个版本都有相应的支持 Chrome 版本的介绍请找好自己的 Chrome 浏览器版本对应的 ChromeDriver 版本再下载否则可能无法正常工作。
找好对应的版本号后随后到 ChromeDriver 镜像站下载对应的安装包即可链接为 https://chromedriver.storage.googleapis.com/index.html。在不同平台下可以下载不同的安装包。
5. 环境变量配置
下载完成后将 ChromeDriver 的可执行文件配置到环境变量下。
在 Windows 下建议直接将 chromedriver.exe 文件拖到 Python 的 Scripts 目录下如图所示。 此外也可以单独将其所在路径配置到环境变量。
在 Linux 和 Mac 下需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里。
例如要移动文件到 /usr/bin 目录。首先需要在命令行模式下进入其所在路径然后将其移动到 /usr/bin 目录
sudo mv chromedriver /usr/bin
另外如果你的系统是 Mac OS X El Capitan 10.11 及更新的系统版本的话需要先关闭 Rootless 内核保护机制具体可参考苹果OSX 10.11关闭rootless内核保护教程_Mac关闭rootless教程 _pc6苹果网MAC资讯。
当然也可以将 ChromeDriver 配置到 $PATH。首先可以将可执行文件放到某一目录目录可以任意选择例如将当前可执行文件放在 /usr/local/chromedriver 目录下接下来在 Linux 下可以修改/.profile 文件在 Mac 下可以修改/.bash_profile 文件添加如下内容
export PATH$PATH:/usr/local/chromedriver
保存后在 Linux 下执行如下命令
source ~/.profile
在 Mac 下执行如下命令
source ~/.bash_profile
即可完成环境变量的添加。
6. 验证安装
配置完成后就可以在命令行下直接执行 chromedriver 命令了
chromedriver
控制台所示的输出则证明 ChromeDriver 的环境变量配置好了。 随后再在程序中测试。执行如下 Python 代码
from selenium import webdriver
browser webdriver.Chrome()
运行之后如果弹出一个空白的 Chrome 浏览器则证明所有的配置都没有问题。如果没有弹出请检查之前的每一步配置。
如果弹出后闪退则可能是 ChromeDriver 版本和 Chrome 版本不兼容请更换 ChromeDriver 版本。
如果没有问题接下来就可以利用 Chrome 来做网页抓取了。
GeckoDriver 的安装
上一节中我们了解了 ChromeDriver 的配置方法配置完成之后便可以用 Selenium 驱动 Chrome 浏览器来做相应网页的抓取。
那么对于 Firefox 来说也可以使用同样的方式完成 Selenium 的对接这时需要安装另一个驱动 GeckoDriver。
本节中我们来介绍一下 GeckoDriver 的安装过程。
1. 相关链接 GitHubhttps://github.com/mozilla/geckodriver 下载地址https://github.com/mozilla/geckodriver/releases
2. 准备工作
在这之前请确保已经正确安装好了 Firefox 浏览器并可以正常运行安装过程不再赘述。
3. 下载 GeckoDriver
我们可以在 GitHub 上找到 GeckoDriver 的发行版本当前最新版本为 0.18下载页面如图所示。
GeckoDriver 下载页面 这里可以在不同的平台上下载如 Windows、Mac、Linux、ARM 等平台我们可以根据自己的系统和位数选择对应的驱动下载若是 Windows 64 位就下载 geckodriver-v0.18.0-win64.zip。
4. 环境变量配置
在 Windows 下可以直接将 geckodriver.exe 文件拖到 Python 的 Scripts 目录下如图所示。 将 geckodriver.exe 文件拖到 Python Scripts 目录 此外也可以单独将其所在路径配置到环境变量
在 Linux 和 Mac 下需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里。
例如要移动文件到 /usr/bin 目录。首先在命令行模式下进入其所在路径然后将其移动到 /usr/bin
sudo mv geckodriver /usr/bin
当然也可以将 GeckoDriver 配置到 $PATH。首先可以将可执行文件放到某一目录目录可以任意选择例如将当前可执行文件放在 /usr/local/geckodriver 目录下。接下来可以修改/.profile 文件然后添加如下一句配置
export PATH$PATH:/usr/local/geckodriver
保存后执行如下命令即可完成配置
source ~/.profile
5. 验证安装
配置完成后就可以在命令行下直接执行 geckodriver 命令测试
geckodriver
控制所示的输出则证明 GeckoDriver 的环境变量配置好了。
控制台输出 随后执行如下 Python 代码。在程序中测试一下
from selenium import webdriver
browser webdriver.Firefox()
运行之后若弹出一个空白的 Firefox 浏览器则证明所有的配置都没有问题如果没有弹出请检查之前的每一步配置。
如果没有问题接下来就可以利用 Firefox 配合 Selenium 来做网页抓取了。
现在我们就可以使用 Chrome 或 Firefox 进行网页抓取了但是这样可能有个不方便之处因为程序运行过程中需要一直开着浏览器在爬取网页的过程中浏览器可能一直动来动去。目前最新的 Chrome 浏览器版本已经支持无界面模式了但如果版本较旧的话就不支持。所以这里还有另一种选择那就是安装一个无界面浏览器 PhantomJS此时抓取过程会在后台运行不会再有窗口出现。在下一节中我们就来了解一下 PhantomJS 的相关安装方法。
PhantomJS 的安装
PhantomJS 是一个无界面的、可脚本编程的 WebKit 浏览器引擎它原生支持多种 Web 标准DOM 操作、CSS 选择器、JSON、Canvas 以及 SVG。
Selenium 支持 PhantomJS这样在运行的时候就不会再弹出一个浏览器了。而且 PhantomJS 的运行效率也很高还支持各种参数配置使用非常方便。下面我们就来了解一下 PhantomJS 的安装过程。
1. 相关链接 官方网站PhantomJS - Scriptable Headless Browser 官方文档Quick Start with PhantomJS 下载地址Download PhantomJS API 接口说明Command Line Interface | PhantomJS
2. 下载 PhantomJS
我们需要在官方网站下载对应的安装包PhantomJS 支持多种操作系统比如 Windows、Linux、Mac、FreeBSD 等我们可以选择对应的平台并将安装包下载下来。
下载完成后将 PhantomJS 可执行文件所在的路径配置到环境变量里。比如在 Windows 下将下载的文件解压之后并打开会看到一个 bin 文件夹里面包括一个可执行文件 phantomjs.exe我们需要将它直接放在配置好环境变量的路径下或者将它所在的路径配置到环境变量里。比如我们既可以将它直接复制到 Python 的 Scripts 文件夹也可以将它所在的 bin 目录加入到环境变量。
Windows Linux 及 Mac 环境变量的配置自行安装关键在于将 PhantomJS 的可执行文件所在路径配置到环境变量里。
配置成功后可以在命令行下测试一下输入
phantomjs
如果可以进入到 PhantomJS 的命令行那就证明配置完成了如图 所示。 3. 验证安装
在 Selenium 中使用的话我们只需要将 Chrome 切换为 PhantomJS 即可
from selenium import webdriver
browser webdriver.PhantomJS()
browser.get(https://www.baidu.com)
print(browser.current_url)
运行之后我们就不会发现有浏览器弹出了但实际上 PhantomJS 已经运行起来了。这里我们访问了百度然后将当前的 URL 打印出来。
控制台的输出如下
https://www.baidu.com/
如此一来我们便完成了 PhantomJS 的配置后面可以利用它来完成一些页面的抓取。
这里我们介绍了 Selenium 对应的三大主流浏览器的对接方式后面我们会对 Selenium 及各个浏览器的对接方法进行更加深入的探究。
aiohttp 的安装
之前介绍的 requests 库是一个阻塞式 HTTP 请求库当我们发出一个请求后程序会一直等待服务器响应直到得到响应后程序才会进行下一步处理。其实这个过程比较耗费时间。如果程序可以在这个等待过程中做一些其他的事情如进行请求的调度、响应的处理等那么爬取效率一定会大大提高。
aiohttp 就是这样一个提供异步 Web 服务的库从 Python 3.5 版本开始Python 中加入了 async/await 关键字使得回调的写法更加直观和人性化。aiohttp 的异步操作借助于 async/await 关键字的写法变得更加简洁架构更加清晰。使用异步请求库进行数据抓取时会大大提高效率下面我们来看一下这个库的安装方法。
1. 相关链接 官方文档Welcome to AIOHTTP — aiohttp 3.9.1 documentation GitHubhttps://github.com/aio-libs/aiohttp PyPIaiohttp · PyPI
2. pip 安装
这里推荐使用 pip 安装命令如下
pip3 install aiohttp
另外官方还推荐安装如下两个库一个是字符编码检测库 cchardet另一个是加速 DNS 的解析库 aiodns。安装命令如下
pip3 install cchardet aiodns
3. 测试安装
安装完成之后可以在 Python 命令行下测试
$ python3import aiohttp
如果没有错误报出则证明库已经安装好了。
我们会在后面的实例中用到这个库比如维护一个代理池时利用异步方式检测大量代理的运行状况会极大地提升效率。