前言
在之前提到爬虫时,我想到的步骤大多是:
- 查找要爬取内容的页面的url,使用requests库获取响应内容
- 内容为html源码则使用BeautifulSoup等工具解析html源码,得到想要的数据
- 内容为Json则直接转为Json对象解析
- 保存数据
但今天我发现了selenium
这个工具,selenium
是一套完整的web应用程序测试系统,可以用它来模拟真实浏览器进行测试。在爬虫中使用它的话,我们就可以通过它来与网站进行交互,比如模拟在b站搜索“爱乐之城”,能够获取到搜索结果的页面内容,而不必自己去复制URL了。
使用selenium
安装
python中selenium
库的安装依然是傻瓜式:
pip install selenium
不过光有selenium
库还不够,还需要下载webdriver,我使用的是chrome浏览器,下载地址:http://npm.taobao.org/mirrors/chromedriver/
下载对应的版本,解压后添加到环境变量中。
查看chrome版本
右上角选项 → \to → 帮助 → \to → 关于Google Chrome,即可查看版本。
添加环境变量
解压后得到的是chromedriver
可执行程序,在windows下把它移动到chrome.exe的目录下:
然后添加到环境变量即可。
在ubuntu下则通过sudo mv chromedriver /usr/local/bin
即可。
简单使用
访问页面
from selenium import webdriver
browser = webdriver.Chrome()
browser.get("http://www.baidu.com")
browser.close()
运行后会打开浏览器窗口并访问百度首页。
进行交互
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
browser = webdriver.Chrome()
browser.get('http://www.baidu.com')
input = browser