今天小编给大家分享一下selenium环境搭建及基本元素定位的方法是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断;
1、什么是selenium selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法执行javaScript代码的问题。selenium模块本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器;由于selenium解析执行了CSS、JavaScript所以相对requests它的性能是低下的;
2、selenium的用途
1)selenium可以驱动浏览器自动执行自定义好的逻辑代码,也就是可以通过代码完全模拟成人类使用浏览器自动访问目标站点并操作,那我们也可以拿它来做爬虫。
2)selenium本质上是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等...进而拿到网页渲染之后的结果,可支持多种浏览器
1、下载selenium模块:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple selenium或者在pycharm中下载
2、安装浏览器驱动1) Google浏览器驱动(在下载驱动之前,查看一下chrome浏览器的版本号,如下:
1)谷歌驱动下载地址:
http://chromedriver.storage.googleapis.com/index.html
当然也可以去官网找最新的版本,官网: https://sites.google.com/a/chromium.org/chromedriver/downloads另外注意:把下载好的chromedriver.exe放到python安装路径的scripts目录中即可
2) firefox浏览器驱动:selenium3默认支持的webdriver是Firfox,而Firefox需要安装geckodriver下载链接:https://github.com/mozilla/geckodriver/releases
3) 测试是否安装成功
from selenium import webdriver browser=webdriver.Chrome() # # 打开浏览器 browser.get('https://baidu.com') s=browser.find_element_by_id('kw') # 其中kw便是页面中某个元素的id值 print(s)
from selenium import webdriver driver = webdriver.Firefox() # Firefox浏览器 driver = webdriver.Chrome() # Chrome浏览器 driver = webdriver.Ie() # Ie浏览器 driver = webdriver.Edge() # Edge浏览器 driver = webdriver.PhantomJS() # PhantomJS()
<html> <head> <body link="#0000cc"> <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})"> <form id="form" class="fm" name="f" action="/s"> <span class="soutu-btn"></span> <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">
# 通过 id 定位 dr.find_element_by_id("kw") # 通过name定位: dr.find_element_by_name("wd") # 通过class name定位: dr.find_element_by_class_name("s_ipt") # 通过tag name定位: dr.find_element_by_tag_name("input") # 通过 xpath 定位的几种写法 dr.find_element_by_xpath("//*[@id='kw']") dr.find_element_by_xpath("//*[@name='wd']" )dr.find_element_by_xpath("//input[@class='s_ipt']") dr.find_element_by_xpath("/html/body/form/span/input") dr.find_element_by_xpath("//span[@class='soutu-btn']/input") dr.find_element_by_xpath("//form[@id='form']/span/input") dr.find_element_by_xpath("//input[@id='kw' and @name='wd']") # 通过 css 定位的几种写法 dr.find_element_by_css_selector("#kw") dr.find_element_by_css_selector("[name=wd]") dr.find_element_by_css_selector(".s_ipt") dr.find_element_by_css_selector("html > body > form > span > input") dr.find_element_by_css_selector("span.soutu-btn> input#kw") dr.find_element_by_css_selector("form#form > span > input") # 通过 link_text 定位 dr.find_element_by_link_text("新闻") dr.find_element_by_link_text("hao123") dr.find_element_by_partial_link_text("新") dr.find_element_by_partial_link_text("hao") dr.find_element_by_partial_link_text("123") # 如果是定位一组元素,用下面 find_elements_by_id() find_elements_by_name() find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath() find_elements_by_css_selector()
请求
显示页面
查找元素
点击可点击元素
所以如何使用selenium找到页面中的标签,进而触发标签事件,就会变的尤为重要
1. selenium选择器 要想定位页面的元素,selenium也提供了一系列的方法。 1) 通过标签id属性进行定位 browser.find_element_by_id('kw') # 其中kw便是页面中某个元素的id值 2) 通过标签name属性进行定位 # 两种方式是一样的 browser.find_element_by_name("wd") # 其中wd是页面中某个元素的name值 3) 通过标签名进行定位 browser.find_element_by_tag_name("img") # img参数表示的就是图片标签img 4) 通过CSS查找方式进行定位 browser.find_elements_by_css_selector("#kw") # 根据选择器进行定位查找,其中#kw表示的是id选择器名称是kw的 5) 通过xpath方式定位 browser.find_element_by_xpath('//*[@id="kw"]') # 参数即是xpath的语法 6) 通过搜索页面中链接进行定位 有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link browser.find_element_by_link_text("设置") 通过搜索页面中链接进行定位 ,可以支持模糊匹配** browser.find_element_by_partial_link_text("百度") # 查找页面所有的含有百度的文字链接
以上就是“selenium环境搭建及基本元素定位的方法是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。