python爬虫系列之爬取百度文库(一)

一、什么是selenium

在爬取百度文库的过程中,我们需要使用到一个工具selenium(浏览器自动测试框架),selenium是一个用于web应用程序测试的工具,它可以测试直接运行在浏览器中,就像我们平时用浏览器上网一样,支持IE(7,8,9,10,11),firefox,safari,chrome,opera等。所以,我们可以使用它去爬取网站的数据,用ajax加载的数据也可以爬取,还可以模拟用户登录,爬取登录之后的数据。

二、怎么安装selenium

在Windows下,win+r,输入cmd之后,打开命令提示符窗口,输入pip install selenium即可安装,安装成功之后,下载chromedirver.exe

下载网址https://chromedriver.storage.googleapis.com/index.html,这里有很多的版本,最好下载2.32的,我的电脑操作系统是win10,2.32我上传到了CSDN下载地址http://download.csdn.net/download/sinat_29957455/9964128

三、打开pycharm写以下代码进行测试

from selenium import webdriver

if __name__ == "__main__":
    browser = webdriver.Chrome(executable_path="F:\python\chromedriver_win32\chromedriver.exe")
    browser.get("https://www.baidu.com/")
上面的executable_path为,我下载的 chromedirver.exe的解压位置

四、运行过程中遇到的问题

1、您使用的是不受支持的命令行标记:--ignore-certificate-errors。稳定性和安全性会有所下降

python爬虫系列之爬取百度文库(一)_第1张图片

解决办法:将上面的python代码改成下面这样,增加chrome的option设置

    options = webdriver.ChromeOptions()
    options.add_experimental_option("excludeSwitches",["ignore-certificate-errors"])
    browser = webdriver.Chrome(executable_path="F:\python\chromedriver_win32\chromedriver.exe",chrome_options=options)
    browser.get("https://www.baidu.com/")
2、如果出现地址栏中的参数为data;和右上角这样的情况,请将 chromedirver.exe换成2.32的,这就是为什么我之前强调要是2.32的,因为我之前下载的是2.9的,换成2.32的之后,这些问题就解决了

python爬虫系列之爬取百度文库(一)_第2张图片

3、selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH. Please see https://sites.google.com/a/chromium.org/chromedriver/home,运行程序的时候报错,这说明没有添加chromedriver.exe的路径,下载好chromedriver解压好之后,添加chromedriver.exe的绝对路径,如下

 browser = webdriver.Chrome(executable_path="F:\python\chromedriver_win32\chromedriver.exe",chrome_options=options)
4、如果,想每次加载的时候不用添加chromedriver.exe的绝对路径这么麻烦,按下面的步骤进行操作,在你使用的python目录下添加chromedriver.exe即可。比如,我在电脑上安装了两个anaconda,anaconda2和anaconda3将它们两个安装在不同的目录下,而这个程序我是在使用anaconda3的环境下运行的,那么我只需要将chromedriver.exe添加到anaconda3的scripts目录下即可,如果你安装的是python,那么需要将chromdriver.exe添加到python27目录下即可。

五、运行结果

python爬虫系列之爬取百度文库(一)_第3张图片

你可能感兴趣的:(Python修炼之路)