前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python3网络爬虫实战-2、请求库安

Python3网络爬虫实战-2、请求库安

作者头像
py3study
发布2020-01-03 17:37:40
8040
发布2020-01-03 17:37:40
举报
文章被收录于专栏:python3python3python3

1.1.4 GeckoDriver的安装

在上一节我们了解了 ChromeDriver 的配置方法,配置完成之后我们便可以用 Selenium 来驱动 Chrome 浏览器来做相应网页的抓取。 那么对于 Firefox 来说,也可以使用同样的方式完成 Selenium 的对接,这时需要安装另一个驱动 GeckoDriver。 本节来介绍一下 GeckoDriver 的安装过程。

1. 相关链接
2. MAC安装方式
brew install GeckoDriver
3. 验证安装

配置完成之后,就可以在命令行下直接执行 geckodriver 命令测试。 命令行下输入: geckodriver 这时控制台应该有类似输出,如图 1-20 所示:

Python3网络爬虫实战-2、请求库安装:GeckoDriver、PhantomJS、Aiohtt
Python3网络爬虫实战-2、请求库安装:GeckoDriver、PhantomJS、Aiohtt

图 1-20 控制台输出 如果有类似输出则证明 GeckoDriver 的环境变量配置好了。 随后再在程序中测试,执行如下 Python 代码:

from selenium import webdriver
browser = webdriver.Firefox()
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

运行之后会弹出一个空白的 Firefox 浏览器,证明所有的配置都没有问题,如果没有弹出,请检查之前的每一步的配置。 如果没有问题,接下来我们就可以利用 Firefox 配合 Selenium 来做网页抓取了。

4. 结语

到现在位置我们就可以使用 Chrome 或 Firefox 进行网页抓取了,但是这样可能有个不方便之处,因为程序运行过程中需要一直开着浏览器,在爬取网页的过程中浏览器可能一直动来动去,着实不方便。目前最新的 Chrome 浏览器版本已经支持了×××面模式,但如果版本较旧就不支持。所以在这里还有另一种方便的选择就是安装一个×××面浏览器 PhantomJS,抓取过程会在后台运行,不会再有窗口出现,这样就方便了很多,所以在下一节我们再了解一下 PhantomJS 的相关安装方法。

1.1.5 PhantomJS的安装

如果我们使用 Chrome 或 Firefox 进行网页抓取的话,每次抓取的时候,都会弹出一个浏览器,比较影响使用。所以在这里再介绍一个×××面浏览器,叫做 PhantomJS。 PhantomJS 是一个×××面的,可脚本编程的 WebKit 浏览器引擎。它原生支持多种 web 标准:DOM 操作,CSS 选择器,JSON,Canvas 以及 SVG。 Selenium 支持 PhantomJS,这样在运行的时候就不会再弹出一个浏览器了,而且其运行效率也是很高的,还支持各种参数配置,使用非常方便,下面我们就来了解一下 PhantomJS 的安装过程。

1. 相关链接
2. MAC安装
brew cask install 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 的配置,在后面我们可以利用它来完成一些页面的抓取。

4. 结语

以上三节我们介绍了 Selenium 对应的三大主流浏览器的对接方式,在后文我们会对 Selenium 及各个浏览器的对接方法进行更加深入的探究。

1.1.6 Aiohttp的安装

之前我们介绍的 Requests 库是一个阻塞式 HTTP 请求库,当我们发出一个请求后,程序会一直等待服务器的响应,直到得到响应后程序才会进行下一步的处理,其实这个过程是比较耗费资源的。如果程序可以在这个等待过程中做一些其他的事情,如进行请求的调度、响应的处理等等,那么爬取效率一定会大大提高。

Aiohttp 就是这样一个提供异步 Web 服务的库,从 Python3.5 版本开始,Python 中加入了 async/await 关键字,使得回调的写法更加直观和人性化,Aiohttp的异步操作借助于 async/await 关键字写法变得更加简洁,架构更加清晰。使用异步请求库来进行数据抓取会大大提高效率,下面我们来看一下这个库的安装方法。

1. 相关链接
2. 安装

推荐使用 Pip 安装,命令如下:

pip3 install aiohttp

另外官方还推荐安装如下两个库,一个是字符编码检测库 cchardet,另一个是加速 DNS 解析库 aiodns,安装命令如下:

pip3 install cchardet aiodns
3. 测试安装

安装完成之后,可以在 Python 命令行下测试。

$ python3
>>> import aiohttp
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

如果没有错误报出,则证明库已经安装好了。

4. 结语

我们会在后面的实例中用到这个库,比如维护一个代理池,利用异步方式检测大量代理的运行状况,极大提高效率。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.1.4 GeckoDriver的安装
  • 1.1.5 PhantomJS的安装
  • 1.1.6 Aiohttp的安装
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档