0


python selenium的xpath的使用

xpath的基本使用

//body/div[last()]            body下的最后一个div元素

//div[@id]                   div下带id属性的元素

//body/*                    body下面所有的元素
//div[@*]                   只要有用属性的div元素
//div[@id='footer']//div    带有id='footer'属性的div下的所有div元素
/@href                       获取标签内元素值

//book/title |//book/price         选取 book 元素的所有 title 和 price 元素。

selenium 在结合xpath使用

# xpath 获取的是多个元素数据,通过selenium只能获取到第一个元素# 返回值为字符串
a = driver.find_element_by_xpath('//*[@id="arc-body"]/table[1]/tbody/tr//td ').text
#find_element_by_xpath 返回属于字符串样式可以进行 转换# find_elements_by_xpath 返回属于列表样式,不可以直接转换# 获取多个元素时使用 find_elements_by_xpath
a = driver.find_element_by_xpath('//*[@id="arc-body"]/table[1]/tbody/tr/td').text
a = driver.find_elements_by_xpath('//*[@id="arc-body"]/table[1]/tbody/tr/td')
# 关闭页面
driver.quit()

报错

# 在selenium中的xpath使用  ‘/text()’ 报错,
a = driver.find_element_by_xpath('//*[@id="arc-body"]/table[1]/tbody/tr/td/text()')<inputtype="text" maxlength="20"class="form-control search-input">
在selenium中使用如下方式取元素会报错

WebElement searchInput = driver.findElement(By.className("form-control search-input"));
selenium.common.exceptions.InvalidSelectorException
原因:class 属性值中间的空格表示的是后代选择器 , 如上表示的是“form-control”内的“search-input”,改为如下方式即可

WebElement searchInput = driver.findElement(By.className("search-input"));

字符串 转 html

使用lxml 解析字符串数据

import requests
from lxml import etree
# url= 'http://www.tstdoors.com/ldks/48734/4911028.html'

a = requests.get(url)

tree = etree.HTML(a.text)
lxa = tree.xpath('//*[@id="content"]/text()')for i in lxa:print(i)

本文转载自: https://blog.csdn.net/weixin_44306688/article/details/126596076
版权归原作者 龖龘大人 所有, 如有侵权,请联系我们删除。

“python selenium的xpath的使用”的评论:

还没有评论