selenium模块
selenium 最初是一个自动化测试工具,而爬虫中使用它主要是为了解决 requests 无法直接执行 JavaScript 代码的问题。selenium 的缺点是效率会变得很慢。
selenium 本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器
from selenium import webdriver # 主流浏览器 browser = webdriver.Chrome() browser = webdriver.Firefox() browser = webdriver.PhantomJS() browser = webdriver.Safari() browser = webdriver.Edge() # 其他国产浏览器,例如360 chrome_options = webdriver.ChromeOptions() chrome_options.binary_location = r"C:\Users\kevin\AppData\Roaming\360se6\Application\360se.exe" # 这里是360安全浏览器的路径 chrome_options.add_argument(r'--lang=zh-CN') # 这里添加一些启动的参数 browser = webdriver.Chrome(chrome_options=chrome_options)
一、安装
安装:
pip3 install selenium
要自动启动浏览器需要安装相应的驱动,selenium3 默认支持的 webdriver 是 Firfox,而 Firefox 需要安装 geckodriver
driver 安装
selenium 需要调用 driver 来控制浏览器,所以要先安装 driver。不同的浏览器使用不同的 driver,并且需要根据浏览器的版本下载对应版本的 driver。
火狐浏览器安装 driver
https://github.com/mozilla/geckodriver/releases
- Linux 下载后将 geckodriver 移动到 /usr/local/bin/ 目录下(或者软连接到 /usr/bin/chromdriver)
- Windows下载后将 geckodriver.exe 加入环境变量,或者将 geckodriver.exe 移动到脚本同级目录
谷歌浏览器安装 driver:
- windows:下载 chromdriver.exe 放到python安装路径的 scripts 目录中即可,注意最新版本是2.xx,并非2.9
- Linux:下载 chromdriver.zip,解压缩后将 chromdriver 文件复制到 /usr/bin 文件夹下(或者软连接到 /usr/bin/chromdriver)
国内镜像网站地址:http://npm.taobao.org/mirrors/chromedriver/
最新的版本去官网找:https://sites.google.com/a/chromium.org/chromedriver/downloads
其他浏览器安装 driver
其他国产浏览器(如360)的内核大部分都是 Chrome,所以只要下载对应版本的谷歌浏览器的 driver 即可。可能有极个别是 IE 内核,原理也是一样,下载 IE 的 driver,回头再聊。
from selenium import webdriver driver = webdriver.Chrome() driver.get('https://www.baidu.com') driver.page_source #能自动弹出浏览器并访问百度,就说明成功了