selenium与xpath之获取指定位置的元素的实现

 更新时间:2021年01月26日 09:21:07   作者:封妖师的徒弟  
这篇文章主要介绍了selenium与xpath之获取指定位置的元素的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

今天有点新的与大家分享,关于selenium与xpath之间爬数据获取指定位置的时候,方式不一样哦。

详情可以看我的代码,以b站来看好吧:

在这里插入图片描述

查看这href元素,如果是xpath,肯定这么写是没有问题的:

i.find_element_by_xpath('./a/@href')

但你再selenium里面这样写会报错,所以要改成这样

i.find_element_by_xpath('./a').get_attribute('href')

这样方可正确

这是一个小案例,关于爬取b站音乐视频,但我的技术水平有限,无法下载,找不到那个东东

大家如果知道如何下载可以在评论区留言,嘿嘿

import requests
from selenium.webdriver import Chrome,ChromeOptions
#后面越来越多喜欢用函数来实现了
def get_webhot():  #热搜函数
  headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36'
  }
  url ="https://www.bilibili.com/" # 微博的地址

  res = requests.get(url)
  #这个就是再后台上面运行那个浏览器,不在表面上占用你的
  option = ChromeOptions()
  option.add_argument('--headless')
  option.add_argument("--no-sandbox")
  #这里也要输入
  browser = Chrome(options=option)
  browser.get(url)
  #解析那个web热搜前,按住ctrl+f会在下面出现一个框框,然后改就完事
  browser.find_element_by_xpath('//*[@id="primaryChannelMenu"]/span[3]/div/a/span').click()
  c = browser.find_elements_by_xpath('//*[@id="high_energy"]/div[1]/div[2]/div')
  for i in c:
    #这里一定要注意,在selenium中不能像xpath那样写('./a/@href')来获取指定的位置,要报错,只能这么获取,查了很久
    detail_url = i.find_element_by_xpath('./a').get_attribute('href')
    name = i.find_element_by_xpath('./a/p').get_attribute('title')
    detail_page_text = requests.get(url=detail_url,headers = headers).text
    print(detail_url,name)
#运行完事
get_webhot()

这是这个结果

在这里插入图片描述

到此这篇关于selenium与xpath之获取指定位置的元素的实现的文章就介绍到这了,更多相关selenium与xpath指定位置元素内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python中模块与包有相同名字的处理方法

    Python中模块与包有相同名字的处理方法

    这篇文章主要给大家介绍了在Python中模块与包有相同名字的处理方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-05-05
  • pandas dataframe按照列名给列排序三种方法

    pandas dataframe按照列名给列排序三种方法

    这篇文章主要给大家介绍了关于pandas dataframe按照列名给列排序的三种方法,在进行数据分析操作时,经常需要对数据按照某行某列排序,或者按照多行多列排序,以及按照索引值排序等等,需要的朋友可以参考下
    2023-07-07
  • 对python pandas 画移动平均线的方法详解

    对python pandas 画移动平均线的方法详解

    今天小编就为大家分享一篇对python pandas 画移动平均线的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • python按照多个字符对字符串进行分割的方法

    python按照多个字符对字符串进行分割的方法

    这篇文章主要介绍了python按照多个字符对字符串进行分割的方法,涉及Python中正则表达式匹配的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • python iloc和loc切片的实现

    python iloc和loc切片的实现

    本文主要介绍了python iloc和loc切片的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • pycharm打包python项目为exe执行文件的实例代码

    pycharm打包python项目为exe执行文件的实例代码

    这篇文章主要介绍了pycharm打包python项目为exe执行文件,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • python 利用zmail库发送邮件

    python 利用zmail库发送邮件

    这篇文章主要介绍了python 如何利用zmail库发送邮件,帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-09-09
  • Python实现将不规范的英文名字首字母大写

    Python实现将不规范的英文名字首字母大写

    这篇文章给大家主要介绍的是利用map()函数,把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。文中给出了三种解决方法,大家可以根据需要选择使用,感兴趣的朋友们下面来一起学习学习吧。
    2016-11-11
  • python list 查询是否存在并且并返回下标的操作

    python list 查询是否存在并且并返回下标的操作

    这篇文章主要介绍了python list 查询是否存在并且并返回下标的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • Python程序员面试题 你必须提前准备!(答案及解析)

    Python程序员面试题 你必须提前准备!(答案及解析)

    这篇文章主要为大家解析了你必须提前准备的Python程序员面试题答案,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01

最新评论