环境要求:python3+以上版本
一、Selenium(转载:https://cuiqingcai.com/5141.html)
Selenium是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等操作。对于一些JavaScript渲染的页面来说,这种抓取方式非常有效。下面我们来看看Selenium的安装过程。
1. 相关链接
- 官方网站:http://www.seleniumhq.org
- GitHub:https://github.com/SeleniumHQ/selenium/tree/master/py
- PyPI:https://pypi.python.org/pypi/selenium
- 官方文档:http://selenium-python.readthedocs.io
- 中文文档:http://selenium-python-zh.readthedocs.io
2. pip安装
这里推荐直接使用pip安装,执行如下命令即可:
sudo pip3 install selenium
但这样做还不够,因为我们还需要用浏览器(如Chrome、Firefox等)来配合Selenium工作。
后面我们会介绍Chrome、Firefox、PhantomJS三种浏览器的配置方式。有了浏览器,我们才可以配合Selenium进行页面的抓取。
具体安装步骤可以参考该链接https://cuiqingcai.com/5135.html
三、GeckoDriver的安装
具体安装步骤可以参考该链接https://cuiqingcai.com/5153.html
四、PhantomJS的安装
具体安装步骤可以参考该链接https://cuiqingcai.com/5159.html
但在该步骤中,由于selenium停止对PhantomJs的支持了,需要使用headless模式,例如这样:
代码:
from selenium import webdriver browser = webdriver.PhantomJS() browser.get('https://www.baidu.com') print(browser.current_url)
报错:
UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox instead warnings.warn('Selenium support for PhantomJS has been deprecated, please use headless ' https://www.baidu.com/
headless模式使用:
from selenium import webdriver #火狐 headless模式 firefox = webdriver.FirefoxOptions() #实例化 # firefox.set_headless() firefox.add_argument('--headless') #使用sed_headless或者add_argument都可以 br = webdriver.Firefox(firefox_options=firefox) br.get('https://www.baidu.com/') print(br.current_url) #谷歌 headless模式 chrome = webdriver.ChromeOptions() chrome.set_headless() # chrome.add_argument('--headless') br = webdriver.Chrome(options=chrome) br.get('https://www.baidu.com') print(br.current_url)