python实现selenium网络爬虫的方法小结
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题,selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器,这里只用到谷歌浏览器。
1.selenium初始化
方法一:会打开网页
#该方法会打开goole网页 fromseleniumimportwebdriver url='网址' driver=webdriver.Chrome() driver.get(url) driver.maximize_window()#实现窗口最大化
方法二:不会打开网页
#该方法会隐式打开goole网页 fromseleniumimportwebdriver url='网址' driver=webdriver.ChromeOptions() driver.add_argument("headless") driver=webdriver.Chrome(options=driver) driver.get(url)
driver=webdriver.Chrome()出错是因为没有chromedriver.exe这个文件
2.元素定位
在selenium中,可以有多种方法对元素进行定位,个人通常喜欢用Xpath和selector来定位元素,这样就不用一个一个的去找节点,直接在网页上定位到元素复制就行。
driver.find_element_by_id()#通过元素ID定位 driver.find_element_by_name()#通过元素Name定位 driver.find_element_by_class_name()#通过类名定位 driver.find_element_by_tag_name()#通过元素TagName定位 driver.find_element_by_link_text()#通过文本内容定位 driver.find_element_by_partial_link_text() driver.find_element_by_xpath()#通过Xpath语法定位 driver.find_element_by_css_selector()#通过选择器定位
注:若寻找多个元素,要记得用复数来选择(element改为elements)
#例如 [i.textforiindriver.find_elements_by_xpath()]
3.建立点击事件
因为有些网站的需求,需建立点击事件,
如下图的这种时间选择,需要设置点击和输入内容,设置的方法也很简单。
driver.find_element_by_css_selector('').click()#点击 driver.find_element_by_css_selector('').send_keys('2021-3-9')#输入内容
4.切换窗口
有些网站点击之后会产生新窗口,这时就需要进行窗口的切换才能进行元素定位
win=driver.window_handles#获取当前浏览器的所有窗口 driver.switch_to.window(win[-1])#切换到最后打开的窗口 driver.close()#关闭当前窗口 driver.switch_to.window(win[0])#切换到最初的窗口
5.iframe问题
有些网站会采用iframe来编写页面,这时就需要进入到iframe才可以获取元素,一般有多少个iframe就需要进入多少个iframe。
#有两个iframe,需逐步进入 iframe1=driver.find_element_by_xpath('') driver.switch_to.frame(iframe1) iframe2=driver.find_element_by_xpath('') driver.switch_to.frame(iframe2)
到此这篇关于python实现selenium网络爬虫的文章就介绍到这了,更多相关pythonselenium网络爬虫内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。