Scrapy+Selenium爬取动态渲染网站
目录
- 1.简介
- 2.安装 Selenium
3.安装驱动
- 3.1 Chrome
- 3.2 Firefox
- 3.3 其它浏览器驱动下载
4.Selenium使用
- 4.1 Chrome 配置
- 4.2 Firefox 配置
- 4.3 不显示打开浏览器的界面
- 4.4 禁用浏览器弹窗
- 4.5 driver属性和方法
1.简介
Selenium是一个用于Web应用程序测试的工具。直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Firefox,Safari,Chrome,Opera等,在爬虫上则是模拟正常用户访问网页并获取数据。
2.安装 Selenium
> pip install selenium
3.安装驱动
模拟真正的用户操作当然需要选择好用来操作的浏览器,根据浏览器来安装相应的驱动调起。
3.1 Chrome
使用selenium驱动chrome浏览器需要下载chromedriver,而且chromedriver版本需要与chrome的版本对应,版本错误的话则会运行报错。
查看chrome的版本,可通过帮助 > 关于Google Chrome(G)
。
下载chromedriver可以通过淘宝镜像地址:http://npm.taobao.org/mirrors... 。最新的镜像与Chrome同名,尽量选择版本相近的避免兼容问题,镜像下notes.txt可查看当前驱动支持的版本。
选择合适的版本下载,下载完解压将chromedriver.exe放在有设置环境变量的目录下,小编是放在python的安装目录下的,即python.exe所在的目录。
3.2 Firefox
使用selenium驱动Firefox浏览器需要下载geckodriver,查看浏览器版本通过帮助 > 关于 Firefox
。
下载geckodriver可通过mozilla的仓库地址:https://github.com/mozilla/ge...。
选择合适的版本下载,解压后geckodriver.exe同样也是放在python的安装目录下。
3.3 其它浏览器驱动下载
Opera:http://npm.taobao.org/mirrors...
IE:http://selenium-release.stora... (版本号要与selenium的版本一致,查看安装的selenium版本,可通过pip show selenium
)如果没有vpn可能会打不开,可点击下载3.14.0版本的。
4.Selenium使用
4.1 Chrome 配置
options = webdriver.ChromeOptions() ## 无界面 # options.add_argument('--headless') driver = webdriver.Chrome(chrome_options=options) driver.set_window_size(1366, 768) driver.set_page_load_timeout(self.timeout)
注意Chrome可能需要管理员权限相关配置,小编习惯性用Firefox