最近在学习爬虫的过程,发现selenium是一个很好用的工具,一些模拟登陆的场景,或者动态生成的网页,在不追求效率的情况下,用selenium + python爬取是十分方便的。
简单来说,selenium做的事就是模拟用户操作访问网页,所以理解起来比较容易,定位元素的方法也比较丰富,只是在网页跳转时尤其是动态加载的网页跳转时容易出现问题,动态加载的网页没办法判断何时加载完成网页,以至于接下来的操作依旧在原网页上进行,现在还未找到好的解决办法。
下面时我自己整理的常用方法
1. 初始化
driver = webdriver.Chrome('')#chromedriver的地址
2. 定位
selenium提供了八种常用的定位方法
- find_element_by_id()
- find_element_by_name()
- find_element_by_class_name()
- find_element_by_tag_name()
- find_element_by_link_text()
- find_element_by_partial_link_text()
7.find_element_by_xpath()(可以结合chrome自带的copyxpath方法使用,不过有时不准确)
8.find_element_by_css_selector()
3. 获取属性
text 文本
tag_name
get_attribute('属性名')
ex: driver.find_element_by_id('main').get_attribute('href')
dirver.current_url 获取当前页面的url
title:获取当前页面的title
4.操作对象
- click 点击对象
- send_keys 在对象上模拟按键输入
- clear 清除对象的内容,如果可以的话