Python爬虫基础讲解(十四):初探selenium——元素提取
Python爬虫、数据分析、网站开发等案例教程视频免费在线观看
https://space.bilibili.com/523606542
Python学习交流群:1039649593
元素提取
通过selenium的基本使用可以简单定位元素和获取对应的数据,接下来我们再来学习下定位元素的方法
find_element_by_id #(根据id属性值获取元素) find_element_by_name #(根据标签的name属性) find_element_by_class_name #(根据类名获取元素) find_element_by_link_text #(根据标签的文本获取元素,精确定位) find_element_by_partial_link_text#(根据标签包含的文本获取元素,模糊定位) find_e1ement_by_tag_name #(根据标签名获取元素) find_e1ement_by_xpath #(根据xpath获取元素) find_element_by_css_selector #(根据css选择器获取元素)
上述方法只能查找页面某个标签元素,如果想获取多个元素可以在element后加字母s,如下所示:
find_elements_by_id #(根据id属性值获取元素,返回一个1ist列表) find_elements_by_name #(根据标签的name属性,返回一个1ist列表) find_elements_by_class_name #(根据类名获取元素,,返回一个list列表) find_elements_by_link_text #(根据标签的文本获取元素,精确定位,返回一个1ist列表) find_elements_by_partial_link_text #(根据标签包含的文本获取元素,模糊定位,返回一个1ist列表) find_elements_by_tag_name #(根据标签名获取元素,返回一个1ist列表) find_elements_by_xpath #(根据xpath获取元素,返回一个1ist列表) find_elements_by_css_selector #(根据css选择器获取元素,返回一个1ist列表)
案例:
以豆瓣首页为例:https://www.douban.com/
from selenium import webdriver #1.创建浏览器-->对象 driver = webdriver.chrome() # 2.发送请求 driver.get("https://www.douban.com//") #3.获取标签<id,class> #3.1 通过标签的id值获取标签anonv-nav result1 = driver.find_element_by_id("anony-nav") #对象print(result1) # 3.2根据标签的name属性值获取标签 result2 = driver.find_element_by_name( ' description ' ) print(result2) #3.3通过标签的c1ass属性值获取标签 result3 = driver.find_element_by_class_name( ' anony-nav-7inks ' ) print(result3) # 3.4通过标签包裹的文本'下载豆瓣App'获取元素列表(精确定位) resu1t4 = driver.find_element_by_link_text("下载豆瓣App") print(result4) #3.5通过标签包裹的文本"豆瓣",获取元素的列表(模糊定位) result5 = driver.find_element_by_partial_link_text("豆瓣") print(result5) # 3.6通过标签名获取元素列表 result6 = driver.find_element_by_tag_name("div") print(result6) #3.7 通过xpath获取左上角豆瓣图片的<a>标签 result7 = driver.find_element_by_xpath('/ /*[@id="anony-nav"]/h1/a') print(result7) #3.8 通过css选择器获取左上角豆瓣图片的<a>标签 result8 = driver.find_element_by_css_selector(' #anony-nav > h1 > a') print(result8) input() driver.close()
一般提取到页面元素,无非就是获取元素包含的文本内容或者元素的属性值,当你通过上述元素提取的方法获取元素以后,可以通过如下方法及属性,获取元素包含的文本以及元素指定的属性值:
send_keys('需要在输入框输入的字符串')#向输入框输入数据 click() # 执行点击操作 text #获取元素包含的文本内容 get_attribute( '属性名')#获取元素的属性值
案例如下:
from selenium import webdriver driver = webdriver. Chrome() driver.get("https://www.douban.com/ ") #通过xpath获取左上角豆瓣图片的<a>标签,提取标签包含的文本内容 """ text属性,可以提取标签包含的文本内容,支持链式调用 """ result = driver.find_element_by_xpath('/ /*[@id="anony-nav"]/h1/a' ).text print(result) #通过xpath获取左上角豆瓣图片的<a>标签,提取标签的href属性 """ get_attri bute('属性名') 方法,可以根据属性名提取标签对应该属性的值,支持链式调用 "" resu1t2 = driver.find_element_by_xpath( '//*[@id="anonynav"]/h1/a ').get_attribute('href' ) print(result2) driver.find_element_by_css_selector('#anony-nav>div.anony-srh>form>span.inp>input[type=text]') #找到豆瓣的搜索框,输入关键字"肖申克的救赎",点击搜索 """ send_keys('需要在输入框输入的字符串')# 向输入框输入数据 click()#执行点击操作 """ input_str = driver.find_element_by_css_selector('#anony-nav>div.anony-srh>form>span.inp>input[type=text]') input_str.send_keys('肖申克的救赎') input_click = driver.find_element_by_css_selector('#anony-nav>div.anony-srh>form>span.bn>input[type=submit] ') input_click.click() input() driver.quit()
标签:
Python爬虫零基础入门
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)