Python3网络爬虫实战---1、请求库安装:Requests、Selenium、ChromeDriver

下一篇文章:

爬虫可以简单分为几步:抓取页面、分析页面、存储数据。

在第一步抓取页面的过程中,我们就需要模拟浏览器向服务器发出请求,所以需要用到一些 Python 库来实现 HTTP 请求操作,在本书中我们用到的第三方库有 Requests、Selenium、Aiotttp 等。

在本节我们介绍一下这些请求库的安装方法。

1.1.1 Requests的安装

由于 Requests 属于第三方库,也就是 Python 默认不会自带这个库,需要我们手动去安装,下面我们首先看一下它的安装过程。

1. 相关链接

  • 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,则打开:https://pypi.python.org/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/kennethrei...

    可以通过 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. 验证安装

    为了验证库是否已经安装成功,可以在命令行下测试一下:

    $ python3
    >>> import requests

    在命令行首先输入 python3,进入命令行模式,然后输入如上内容,如果什么错误提示也没有,那么就证明我们已经成功安装了 Requests。

    1.1.2 Selenium的安装

    Selenium 是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效,下面我们来看下 Selenium 的安装过程。

    1. 相关链接

    2. Pip安装

    推荐直接使用 Pip 安装,执行如下命令即可:

    pip3 install selenium

    3. Wheel安装

    也可以到 PyPi 下载对应的 Wheel 文件进行安装,https://pypi.python.org/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 包,如果没有报错,则证明安装成功。

    $ python3
    >>> import selenium

    但这样还不够,我们还需要浏览器如 Chrome、Firefox 等浏览器来配合 Selenium 工作。

    下面我们会介绍 Chrome、Firefox、PhantomJS 三种浏览器的配置方式,有了浏览器我们才可以配合 Selenium 进行页面的抓取。

    1.1.3 ChromeDriver的安装

    在上节我们成功安装好了 Selenium 库,但是它是一个自动化测试工具,需要浏览器来配合它使用,那么本节我们就介绍一下 Chrome 浏览器及 ChromeDriver 驱动的配置。
    首先需要下载一个 Chrome 浏览器,方法多样,在此不再赘述。
    随后我们需要安装一个 ChromeDriver 才能驱动 Chrome 浏览器完成相应的操作,下面我们来介绍下怎样安装 ChromeDriver。

    1. 相关链接

    2. 准备工作

    在这之前请确保已经正确安装好了 Chrome 浏览器并可以正常运行,安装过程不再赘述。

    3. 查看版本

    点击 Chrome 的菜单,帮助->关于 Chrome,即可查看 Chrome 的版本号,
    我的版本是

    版本 74.0.3729.169(正式版本) (64 位)

    请记住 Chrome 版本号,在后面选择 ChromeDriver 版本时需要用到。

    4. 下载ChromeDriver

    打开 ChromeDriver 的官方网站,链接为:

    https://sites.google.com/a/chromium.org/chromedriver/downloads

    可以看到到目前为止最新版本为 2.31,其支持的 Chrome 浏览器版本为 73-76,最新版本以官网为准,官网页面如图 1-15 所示:
    7008cb6020f31e12e83123a4e2ee1dae.png

    图 1-15 官网页面
    如果你的 Chrome 版本号是58-60,那么可以选择此版本下载。
    如果版本不在此范围,那可以继续查看之前的 ChromeDriver 版本,每个版本都有相应的支持 Chrome 版本介绍,请找好自己的 Chrome 浏览器版本对应的 ChromeDriver 版本再下载,否则可能导致无法正常工作。
    找好对应的版本号后随后到 ChromeDriver 镜像站下载对应的安装包即可:https://chromedriver.storage....,不同平台可以下载不同的安装包。

    5. 环境变量配置

    下载完成后将 ChromeDriver 的可执行文件配置到环境变量下。
    在 Windows 下,建议直接将 chromedriver.exe 文件拖到 Python 的 Scripts 目录下,如图 1-16 所示:
    66aa328809f6810bf434f2296f8e6b34.jpeg
    图 1-16 Python Scripts 目录

    也可以单独将其所在路径配置到环境变量,环境变量的配置方法请参见 Python3 的安装一节。
    Mac情况下,直接将chromedriver复制到/user/local/bin就可以了

    如果mac或Linux下,提示

    chromedriver: command not found

    就按照下面方法
    在 Linux、Mac 下,需要将可执行文件配置到环境变量或将文件移动到属于环境变量的目录里。
    例如移动文件到 /usr/bin 目录,首先命令行进入其所在路径,然后将其移动到 /usr/bin:

    sudo mv chromedriver /usr/bin

    当然也可以将 ChromeDriver 配置到 $PATH,首先可以将可执行文件放到某一目录,目录可以任意选择,例如将当前可执行文件放在 /usr/local/chromedriver 目录下,接下来可以修改 ~/.profile 文件,命令如下:

    export PATH="$PATH:/usr/local/chromedriver"

    保存然后执行:

    source ~/.profile

    即可完成环境变量的添加。

    6. 验证安装

    配置完成之后,就可以在命令行下直接执行 chromedriver 命令了。
    命令行下输入:
    chromedriver
    输入控制台有类似输出,如图 1-17 所示:
    0e32953f293641bb15039ff0d8d09181.jpeg
    图 1-17 控制台输出
    如果有类似输出则证明 ChromeDriver 的环境变量配置好了。
    随后再在程序中测试,执行如下 Python 代码:

    from selenium import webdriver
    browser = webdriver.Chrome()

    运行之后会弹出一个空白的 Chrome 浏览器,证明所有的配置都没有问题,如果没有弹出,请检查之前的每一步的配置。
    如果弹出之后闪退,则可能是 ChromeDriver 版本和 Chrome 版本不简容,请更换 ChromeDriver 版本。
    如果没有问题,接下来我们就可以利用 Chrome 来做网页抓取了。

    7. 结语

    既然 Chrome 可以通过 Selenium 驱动,Firefox 也可以,如果想要实现 Selenium 驱动 Firefox 浏览器可以参考下面的 GeckoDriver 的安装。

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章