Selenium
为了Selenium方法的成功使用,必须保证ChromeDriver安装版本与Chrome版本匹配。当然你也可以使用其它浏览器,个人选择。
这是ChromeDriver的镜像下载地址,更新浏览器后记得更新ChromeDriver,顺便我个人记录一下,我的ChromeDriver装在C:\Program Files (x86)\Google\Chrome\Application
注意:
1、上文中的镜像已停止更新,现在只能从
ChromeDriver官方站点进行下载2、此外
ChromeDriver不仅要放到\Chrome\Application下,还有可能需要放到python路径下:D:\Program Files\Anaconda3
主要流程讲解
1、控制开启浏览器
from selenium.webdriver import Chrome, ChromeOptions # 导入类库
option = ChromeOptions() # 初始化类
option.add_experimental_option("excludeSwitches", ['enable-automation', 'enable-logging']) # 添加参数
driver = Chrome(options=option) # 模拟开浏览器
driver.get('https://m.xiaozhu.com/#') # 跳转网址
myDriver.maximize_window() # 最大化窗口
driver.title # 如果成功打印title则说明接管成功2、获取对应元素
driver.find_elements_by_class_name('list_con') # 通过class的方式获取,也可以使用其他方式
find_elements(By.XPATH,"//*[contains(@href, 'pdf')]").get_attribute('href')selenium更新后,之前的获取元素的方式发生了改变,主要差异为引入了By,其他的参数直接点开By查看即可
同样可以使用Xpath获取元素,语法为//节点名[starts-with(@元素名, "相同部分")]
3、处理元素数据
我习惯于使用BeatifulSoup处理,当然也可以使用selenium套件处理,等有空我再学习一下补上
4、设置等待
5、托管指定端口的浏览器
对于知乎这种网站,使用selenium控制开启一个浏览器往往会被识别,所以需要我们配置一个浏览器(进行登录等常规操作)后,再使用代码直接托管,具体流程如下:
将Chrome发送到桌面快捷方式,并设置其端口和缓存文件路径

目标处填入“程序路径 端口设置 文件路径”,具体如下
使用Python接管浏览器
最后更新于