selenium爬取网页内容知识点总结

Posted qilin20

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了selenium爬取网页内容知识点总结相关的知识,希望对你有一定的参考价值。

1.selenium获取网页iframe内容

语法:driver.switch_to.frame(iframe)

①通过tag_name

 

driver.get(url)
#该iframe为页面的第几个iframe
iframe = driver.find_elements_by_tag_name(iframe)[0]
driver.switch_to.frame(iframe)

 

②通过iframe的id或class_name

iframe = driver.find_element_by_id("iframe1")
#iframe = driver.find_element_by_class_name("iframe1")
driver.switch_to.frame(iframe)

 

2.selenium控制鼠标悬停在某个位置

#导包
from
selenium.webdriver.common.action_chains import ActionChains

#ActionChains中的函数
click(on_element=None)    #单击鼠标左键 click_and_hold(on_element=None)    #点击鼠标左键,按住不放 context_click(on_element=None) #点击鼠标右键 double_click(on_element=None) #双击鼠标左键 drag_and_drop(source, target) #拖拽到某个元素然后松开 drag_and_drop_by_offset(source, xoffset, yoffset) #拖拽到某个坐标然后松开 move_by_offset(xoffset, yoffset) #鼠标移动到距离当前位置(x,y) move_to_element(to_element) #鼠标移动到某个元素 move_to_element_with_offset(to_element, xoffset, yoffset) #将鼠标移动到距某个元素多少距离的位置 release(on_element=None) #在某个元素位置松开鼠标左键 perform() #执行链中的所有动作

 实例:

#定位元素位置,可通过xpath、id、tag_name、class_name、selector等
container= driver.find_element_by_xpath(//*[@id="container"]/div[1])
ActionChains(driver).move_to_element(canvas).perform

 

3.selenium获取网页中style display:none的元素

 在UI自动化测试中,有时因为前端元素被设置为不可见导致页面元素无法定位,此时,我们可以通过javascript修改页面元素属性来将元素设为可见。

#首先通过selenium封装好的方法document去获取元素,document提供以下方法来定位元素:
#    ①getElementById():返回对指定ID第一个对象的引用
#    ②getElementsByName() :返回带有指定名称的对象集合
#    ③getElementsByTagName():返回带有指定标签名的对象集合
#此次我们通过元素id获取该元素
js = "document.getElementById("table1").style.display=‘block‘;"
#执行js脚本
driver.execute_script(js)

 

以上是关于selenium爬取网页内容知识点总结的主要内容,如果未能解决你的问题,请参考以下文章

Python+Selenium动态网页的信息爬取

使用Selenium爬取百度文库word文章

python+selenium+PhantomJS爬取网页动态加载内容

爬取菜谱网站

怎么爬取网页的动态内容,很多都是js动态生

爬虫1.5-ajax数据爬取