selenium 的基本使用
页面元素定位
- 用法
- find_element_by_id(返回一个)
- find_elements_by_xpath(返回一个列表)
- find_element_by_link_text()
- find_element_by_partial_link_text
- find_element_by_tag_name()
- find_element_by_class_name()
-find_element_by_css_selector
注意点:
1.find_element和find_elements的区别:返回一个和返回一个列表
2.by_link_text和by_partial_link_text的区别:全部文本和包含某个文本
3.by_css_selector的用法: # food span.dairy.aged
4.by_xpath中获取属性和文本需要使用get_attribute()和.text
页面等待
1.为什么需要等待
因为如果网站采用动态html技术,那么页面上的部分元素出现时间就不能确定了,所以我们就可以设置一个等待时间,强制要求在时间内出现,否则报错
2.强制等待
time.sleep(3) # 当网站执行3秒之后再执行程序
selenium使用的注意点
-
获取文本和获取属性
-
先定位到元素,然后调用‘.text’或者’get_attribute()’方法来取
-
selenium获取页面数据是浏览器中elements的内容
-
find_element和find_elements的区别
-
find_element返回一个element,如果没有会报错
-
find_elements返回一个列表,没有就是空列表
-
在判断是否有下一页的时候,使用find_elements来根据结果的列表长度来判断
-
如果页面中含有iframe、frame,需要先调用driver中的switch_to.frame()的方法切换到frame中才能定位元素
-
selenium 请求第一页的时候会等待页面加载完了之后再获取数据,但是再点击翻页之后,hi会直接获取数据,此时可能会报错,因为数据还没有加载出来,需要time.sleep(3)
Cookie
cookie相关用法
使用字典推导式:一般在网页上抓取的cookies,可以进行字典推导式,转化为字典
- {cookie[“name”]: cookie[“value”] for cookie in driver.get_cookies()}