Selenium如何获取li标签内部a标签的href链接内容
问题修复方案
- 问题1:属性获取逻辑错误
当前代码使用r.text获取的是a标签的可见文本内容,和你需要的href属性值不符,需改为调用Selenium元素的get_attribute()方法传入href参数获取链接。 - 问题2:XPath索引规则错误
XPath的节点下标从1开始计数,你使用range(0,10)生成的i值会从0开始,li[0]属于不存在的无效节点,会丢失第一条匹配结果。 - 问题3:遍历逻辑冗余
不需要单独循环拼接每个li的下标,可直接通过XPath匹配所有ul下li内的a元素,一次获取全部目标节点。
修正后代码
def getLinks(link): driver.get(link) # 直接匹配所有符合条件的a标签,无需循环拼接下标 results = driver.find_elements_by_xpath("/html/body/div[3]/div/div[1]/div[2]/div[3]/ul/li/a") for r in results: # 获取href属性值打印 print(r.get_attribute('href')) driver.close()
如果需要保留你原来的循环写法,只需要修改两处即可:
- 将
range(0,10)改为range(1,11) - 将
print(r.text)改为print(r.get_attribute('href'))
内容的提问来源于stack exchange,提问作者Kiddanube4
相关产品推荐
相关产品推荐

