文章目录
一、模块安装
创建一个新的项目:
新窗口:
模块安装:
pip install selenium
如下则安装成功:
二、驱动器安装配置
进入如下链接查看chrome版本:
chrome://version/
比如我的为:
可以看到我的版本为哦:
92.0.4515.131
现在进入如下链接:
http://npm.taobao.org/mirrors/chromedriver
进去之后看到只有这两个比较符合:
点击其中一个就行,进去之后点击win32:
点击后就会下载,解压得到exe,复制改路径加入到环境变量:
三、打开网页
案例一
我们以CSDN为例,后面也如此:
# coding=gbk """ 作者:川川 @时间 : 2021/10/5 22:45 群:970353786 """ from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.csdn.net/?spm=1001.2014.3001.4476')#get请求C站
效果如下:
注意:如果你运行失败,请在初始化里面添加chromedriver路径,例子如下:
browser=webdriver.Chrome(executable_path=r'D:\360安全浏览器下载\chromedriver.exe')#初始化
案例二
我们再以打开淘宝为例:
https://www.taobao.com/
代码为:
# coding=gbk """ 作者:川川 @时间 : 2021/10/6 16:04 群:970353786 """ from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页
运行效果:
四、元素定位
这8种定位方式在Python 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()
- find_element_by_xpath()
- find_element_by_css_selector()
4.1 id定位
使用 WebDriver 时要学习的最基本的技术之一是如何查找页面上的元素。 WebDriver 提供了许多内置的选择器类型,其中包括根据 id 属性查找元素。
语法:
driver.find_element(By.ID, "cheese")
案例一
以淘宝为例:
https://www.taobao.com/
分析:
则代码为:
# coding=gbk """ 作者:川川 @时间 : 2021/10/6 15:46 群:970353786 """ from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页 id=browser.find_elements_by_id('q') print(id)
运行效果:
4.2 class定位
定位class属性与搜索值匹配的元素(不允许使用复合类名)
案例一
以CSDN主页为例。
分析:
则代码为:
from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.csdn.net/?spm=1001.2014.3001.4476')#get请求C站 top=browser.find_element_by_class_name('el-popover__reference') #class定位
运行效果:
案例二
再或者是我自己的主页:
则代码为:运行效果如下:
# coding=gbk """ 作者:川川 @时间 : 2021/10/6 15:37 群:970353786 """ from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://blog.csdn.net/weixin_46211269?spm=1000.2115.3001.5343')#get请求C站 zuo=browser.find_element_by_class_name('user-profile-statistics-num')
运行效果如下:
4.3 txt文本定位
定位link text可视文本与搜索值完全匹配的锚元素
案例一
以淘宝为例:
则代码为:
# coding=gbk """ 作者:川川 @时间 : 2021/10/6 15:55 群:970353786 """ from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页 href=browser.find_element_by_link_text('男装')#文本获取链接 print(href)
运行效果:
案例二
再或者定位零食
同样定位成功,可以常识打印为txt看看
from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页 ling=browser.find_element_by_link_text('零食') print(ling.text)
运行效果:
4.4 标签定位
tag name 定位标签名称与搜索值匹配的元素
案例一
分析:
则代码为:
from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页 biao=browser.find_element_by_tag_name('input') print(biao)
运行效果:
4.5 name定位
分析:
则代码为:
from selenium import webdriver#导入模块 browser=webdriver.Chrome()#初始化 browser.get('https://www.taobao.com')#get请求淘宝网页 n=browser.find_element_by_name('q') print(n)
运行效果:
4.6 xpath定位
xpath工具也可以推荐大家使用:xpath helper
怎么用xpath定位呢?哎,我实在懒得找例子了,下面我构造一个例子吧。
5、具体定位方法
假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。
<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="
我们的目的是要定位input标签的输入框(以下方法都可以):
1.通过id定位
dr.find_element_by_id("kw")
2.通过name定位
dr.find_element_by_name("wd")
3.通过class name定位
dr.find_element_by_class_name("s_ipt")
4.通过tag name定位
dr.find_element_by_tag_name("input")
五、小总结
本篇内容为selenium的开始到元素定位,后续会继续更新selenium新的内容。
六、福利
顺便为反馈大家对我的支持,顺此文送三本关于自然语言处理的书,对玩高阶python的粉丝会有很大的帮助。
这是一个北大高材生写的,把人工智能自然语言处理写得很通俗。
仅送出三本,参与方式:
- 在本文章评论区对本文评论
- 你的评论被别人点赞数量最高的前三位获奖
- 你可以去邀请别人给你点赞