Python3网络爬虫实战-1、请求库安
爬虫可以简单分为几步:抓取页面、分析页面、存储数据。
在第一步抓取页面的过程中,我们就需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现 HTTP 请求操作,在本书中我们用到的第三方库有 Requests、Selenium、Aiotttp 等。
在本节我们介绍一下这些请求库的安装方法。
由于 Requests 属于第三方库,也就是 Python 默认不会自带这个库,需要我们手动去安装,下面我们首先看一下它的安装过程。
1. 相关链接
- GitHub:https://github.com/requests/r...
- PyPy:https://pypi.python.org/pypi/...
- 官方文档:http://www.python-requests.org/
- 中文文档:http://docs.python-requests.o/...
2. 安装
pip3 install requests
3. 验证安装
为了验证库是否已经安装成功,可以在命令行下测试一下:
$ python3
>>> import requests
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
在命令行首先输入 python3,进入命令行模式,然后输入如上内容,如果什么错误提示也没有,那么就证明我们已经成功安装了 Requests。
Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效,下面我们来看下 Selenium 的安装过程。
1. 相关链接
- 官方网站:http://www.seleniumhq.org/
- GitHub:https://github.com/SeleniumHQ...
- PyPi:https://pypi.python.org/pypi/...
- 官方文档:http://selenium-python.readth/...
- 中文文档:http://selenium-python-zh.rea/...
2. 安装
pip3 install selenium
3. 验证安装
进入 Python 命令行交互模式,导入一下 Selenium 包,如果没有报错,则证明安装成功。
$ python3
>>> import selenium
但这样还不够,我们还需要浏览器如 Chrome、Firefox 等浏览器来配合 Selenium 工作。
下面我们会介绍 Chrome、Firefox、PhantomJS 三种浏览器的配置方式,有了浏览器我们才可以配合 Selenium 进行页面的抓取。
在上节我们成功安装好了 Selenium 库,但是它是一个自动化测试工具,需要浏览器来配合它使用,那么本节我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。
首先需要下载一个 Chrome 浏览器,方法多样,在此不再赘述。
随后我们需要安装一个 ChromeDriver 才能驱动 Chrome 浏览器完成相应的操作,下面我们来介绍下怎样安装 ChromeDriver。
1. 相关链接
2. MAC安装
brew install chromedriver
如果安装失败,使用下面方法
brew cask install chromedriver
3. 验证安装
配置完成之后,就可以在命令行下直接执行 chromedriver 命令了。
命令行下输入:
chromedriver
输入控制台有类似输出,如图 1-17 所示:
图 1-17 控制台输出
如果有类似输出则证明 ChromeDriver 的环境变量配置好了。
随后再在程序中测试,执行如下 Python 代码:
from selenium import webdriver
browser = webdriver.Chrome()
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎
运行之后会弹出一个空白的 Chrome 浏览器,证明所有的配置都没有问题,如果没有弹出,请检查之前的每一步的配置。
如果弹出之后闪退,则可能是 ChromeDriver 版本和 Chrome 版本不简容,请更换 ChromeDriver 版本。
如果没有问题,接下来我们就可以利用 Chrome 来做网页抓取了。
4. 结语
既然 Chrome 可以通过 Selenium 驱动,Firefox 也可以,如果想要实现 Selenium 驱动 Firefox 浏览器可以参考下面的 GeckoDriver 的安装。
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341