小白学 Python 爬虫(2):前置准备(一)基本类库的安装

人生苦短,我用 Python前端

前文传送门:python

小白学 Python 爬虫(1):开篇git

本篇内容较长,各位同窗能够先收藏后再看~~github

在开始讲爬虫以前,仍是先把环境搞搞好,工欲善其事必先利其器嘛~~~web

本篇文章主要介绍 Python 爬虫所使用到的请求库和解析库,请求库用来请求目标内容,解析库用来解析请求回来的内容。redis

开发环境

首先介绍小编本地的开发环境:chrome

  • Python3.7.4
  • win10

差很少就这些,最基础的环境,其余环境须要咱们一个一个安装,如今开始。npm

请求库

虽然 Python 为咱们内置了 HTTP 请求库 urllib ,使用姿式并非很优雅,可是不少第三方的提供的 HTTP 库确实更加的简洁优雅,咱们下面开始。浏览器

Requests

Requests 类库是一个第三方提供的用于发送 HTTP 同步请求的类库,相比较 Python 自带的 urllib 类库更加的方便和简洁。数据结构

Python 为咱们提供了包管理工具 pip ,使用 pip 安装将会很是的方便,安装命令以下:

pip install requests复制代码

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import requests复制代码

首先在 CMD 命令行中输入 python ,进入 python 的命令行模式,而后输入 import requests 若是没有任何错误提示,说明咱们已经成功安装 Requests 类库。

Selenium

Selenium 如今更多的是用来作自动化测试工具,相关的书籍也很多,同时,咱们也可使用它来作爬虫工具,毕竟是自动化测试么,利用它咱们可让浏览器执行咱们想要的动做,好比点击某个按钮、滚动滑轮之类的操做,这对咱们模拟真实用户操做是很是方便的。

安装命令以下:

pip install selenium复制代码

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import selenium复制代码

这样没报错咱们就安装完成,可是你觉得这样就算好了么?图样图森破啊。

ChromeDriver

咱们还须要浏览器的支持来配合 selenium 的工做,开发人员嘛,经常使用的浏览器莫非那么几种:Chrome、Firefox,那位说 IE 的同窗,你给我站起来,当心我跳起来打你膝盖,还有说 360 浏览器的,大家可以让我省省心吧。

接下来,安装 Chrome 浏览器就不用讲了吧。。。。

再接下来,咱们开始安装 ChromeDriver ,安装了 ChromeDriver 后,咱们才能经过刚才安装的 selenium 来驱动 Chrome 来完成各类骚操做。

首先,咱们须要查看本身的 Chrome 浏览器的版本,在 Chrome 浏览器右上角的三个点钟,点击 帮助 -> 关于,以下图:

将这个版本找个小本本记下来,小编这里的版本为: 版本 78.0.3904.97(正式版本) (64 位)

接下来咱们须要去 ChromeDriver 的官网查看当前 Chrome 对应的驱动。

官网地址: https://sites.google.com/a/chromium.org/chromedriver/

因某些缘由,访问时需某些手段,访问不了的就看小编为你们准备的版本对应表格吧。。。

ChromeDriver Version Chrome Version
78.0.3904.11
78
77.0.3865.40
77
77.0.3865.10
77
76.0.3809.126
76
76.0.3809.68
76
76.0.3809.25
76
76.0.3809.12
76
75.0.3770.90
75
75.0.3770.8
75
74.0.3729.6
74
73.0.3683.68
73
72.0.3626.69
72
2.46
71-73
2.45
70-72
2.44
69-71
2.43
69-71
2.42
68-70
2.41
67-69
2.40
66-68
2.39
66-68
2.38
65-67
2.37
64-66
2.36
63-65
2.35
62-64

顺便小编找到了国内对应的下载的镜像站,由淘宝提供,以下:

http://npm.taobao.org/mirrors/chromedriver

虽然和小编本地的小版本对不上,可是看样子只要大版本符合应该没啥问题,so,去镜像站下载对应的版本便可,小编这里下载的版本是:78.0.3904.70 ,ChromeDriver 78版本的最后一个小版本。

下载完成后,将可执行文件 chromedriver.exe 移动至 Python 安装目录的 Scripts 目录下。若是使用默认安装未修改过安装目录的话目录是:%homepath%AppDataLocalProgramsPythonPython37Scripts ,若是有过修改,那就自力更生吧。。。

chromedriver.exe 添加后结果以下图:

验证:

仍是在 CMD 命令行中,输入如下内容:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> browser = webdriver.Chrome()复制代码

若是打开一个空白的 Chrome 页面说明安装成功。

GeckoDriver

上面咱们经过安装 Chrome 的驱动完成了 Selenium 与 Chrome 的对接,想要完成 Selenium 与 FireFox 的对接则须要安装另外一个驱动 GeckoDriver 。

FireFox 的安装小编这里就不介绍了,你们最好去官网下载安装,路径以下:

FireFox 官网地址: http://www.firefox.com.cn/

GeckoDriver 的下载须要去 Github (全球最大的同性交友网站),下载路径小编已经找好了,能够选择最新的 releases 版本进行下载。

下载地址: https://github.com/mozilla/geckodriver/releases

选择对应本身的环境,小编这里选择 win-64 ,版本为 v0.26.0 进行下载。

具体配置方式和上面同样,将可执行的 .exe 文件放入 %homepath%AppDataLocalProgramsPythonPython37Scripts 目录下便可。

验证:

仍是在 CMD 命令行中,输入如下内容:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from selenium import webdriver
>>> browser = webdriver.Firefox()复制代码

应该是能够正常打开一个空白的 FireFox 页面的,结果以下:

注意: GeckoDriver 指出一点,当前的版本在 win 下使用有已知 bug ,须要安装微软的一个插件才能解决,原文以下:

You must still have the Microsoft Visual Studio redistributable runtime installed on your system for the binary to run. This is a known bug which we weren't able fix for this release.

插件下载地址: https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads

请各位同窗选择本身对应的系统版本进行下载安装。

Aiohttp

上面咱们介绍了同步的 Http 请求库 Requests ,而 Aiohttp 则是一个提供异步 Http 请求的类库。

那么,问题来了,什么是同步请求?什么是异步请求呢?

  • 同步:阻塞式,简单理解就是当发出一个请求之后,程序会一直等待这个请求响应,直到响应之后,才继续作下一步。
  • 异步:非阻塞式,仍是上面的例子,当发出一个请求之后,程序并不会阻塞在这里,等待请求响应,而是能够去作其余事情。

从资源消耗和效率上来讲,同步请求是确定比不过异步请求的,这也是为何异步请求会比同步请求拥有更大的吞吐量。在抓取数据时使用异步请求,能够大大提高抓取的效率。

若是还想了解跟多有关 aiohttp 的内容,能够访问官方文档: https://aiohttp.readthedocs.io/en/stable/ 。

aiohttp 安装以下:

pip install aiohttp复制代码

aiohttp 还推荐咱们安装另外两个库,一个是字符编码检测库 cchardet ,另外一个是加速DNS的解析库 aiodns 。

安装 cchardet 库:

pip install cchardet复制代码

安装 aiodns 库:

pip install aiodns复制代码

aiohttp 十分贴心的为咱们准备了整合的安装命令,无需一个一个键入命令,以下:

pip install aiohttp[speedups]复制代码

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import aiohttp复制代码

没报错就安装成功。

解析库

lxml

lxml 是 Python 的一个解析库,支持 HTML 和 XML 的解析,支持 XPath 的解析方式,并且解析效率很是高。

什么是 XPath ?

XPath即为XML路径语言(XML Path Language),它是一种用来肯定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其做为一个通用的、介于XPointer与XSL间的语法模型。

以上内容来源《百度百科》

好吧,小编说人话,就是能够从 XML 文档或者 HTML 文档中快速的定位到所须要的位置的路径语言。

还没看懂?emmmmmmmmmmm,咱们可使用 XPath 快速的取出 XML 或者 HTML 文档中想要的值。用法的话咱们放到后面再聊。

安装 lxml 库:

pip install lxml复制代码

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import lxml复制代码

没报错就安装成功。

Beautiful Soup

Beautiful Soup 一样也是一个 Python 的 HTML 或 XML 的解析库 。它拥有强大的解析能力,咱们可使用它更方便的从 HTML 文档中提取数据。

首先,放一下 Beautiful Soup 的官方网址,有各类问题均可以在官网查看文档,各位同窗养成一个好习惯,有问题找官方文档,虽然是英文的,使用 Chrome 自带的翻译功能仍是勉强能看的。

官方网站:https://www.crummy.com/software/BeautifulSoup/

安装方式依然使用 pip 进行安装:

pip install beautifulsoup4复制代码

Beautiful Soup 的 HTML 和 XML 解析器是依赖于 lxml 库的,因此在此以前请确保已经成功安装好了 lxml 库 。

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> from bs4 import BeautifulSoup复制代码

没报错就安装成功。

pyquery

pyquery 一样也是一个网页解析库,只不过和前面两个有区别的是它提供了相似 jQuery 的语法来解析 HTML 文档,前端有经验的同窗应该会很是喜欢这款解析库。

首先仍是放一下 pyquery 的官方文档地址。

官方文档: https://pyquery.readthedocs.io/en/latest/

安装:

pip install pyquery复制代码

验证:

C:\Users\inwsy>python
Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyquery复制代码

没报错就安装成功。

本篇的内容就先到这里结束了。请各位同窗在本身的电脑上将上面介绍的内容都安装一遍,以便后续学习使用。

若是个人文章对您有帮助,请扫码关注下做者的公众号:获取最新干货推送:)
相关文章
相关标签/搜索