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


Posted in Python onJanuary 26, 2021

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

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

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

查看这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之获取指定位置的元素的实现的文章就介绍到这了,更多相关selenium与xpath指定位置元素内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python操作xml文件示例
Apr 07 Python
python求众数问题实例
Sep 26 Python
Python中一些自然语言工具的使用的入门教程
Apr 13 Python
python数组复制拷贝的实现方法
Jun 09 Python
python读写json文件的简单实现
Apr 11 Python
python读取xlsx的方法
Dec 25 Python
用Python逐行分析文件方法
Jan 28 Python
对python中的try、except、finally 执行顺序详解
Feb 18 Python
用python wxpy管理微信公众号并利用微信获取自己的开源数据
Jul 30 Python
python基于event实现线程间通信控制
Jan 13 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
Python 中的函数装饰器和闭包详解
Feb 06 Python
详解Python中的Lock和Rlock
Jan 26 #Python
5分钟快速掌握Python定时任务框架的实现
Jan 26 #Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 #Python
python 实现的车牌识别项目
Jan 25 #Python
Python实现给PDF添加水印的方法
Jan 25 #Python
2021年值得向Python开发者推荐的VS Code扩展插件
Jan 25 #Python
numba提升python运行速度的实例方法
Jan 25 #Python
You might like
在PHP中使用redis
2013/11/04 PHP
Laravel5权限管理方法详解
2016/07/26 PHP
ThinkPHP使用getlist方法实现数据搜索功能示例
2017/05/08 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
utf8的编码算法 转载
2006/12/27 Javascript
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
传递参数的标准方法(jQuery.ajax)
2008/11/19 Javascript
Prototype Class对象学习
2009/07/19 Javascript
Jquery iframe内部出滚动条
2010/02/11 Javascript
Extjs gridpanel 出现横向滚动条问题的解决方法
2011/07/04 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
兼容Firefox的Javascript XSLT 处理XML文件
2014/12/31 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
原生JS实现风箱式demo,并封装了一个运动框架(实例代码)
2016/07/22 Javascript
AngularJS基础 ng-submit 指令简单示例
2016/08/03 Javascript
PHP抓取HTTPS内容和错误处理的方法
2016/09/30 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
2016/11/18 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
深入理解 JS 垃圾回收
2019/06/03 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python3控制路由器——使用requests重启极路由.py
2016/05/11 Python
Python实现Youku视频批量下载功能
2017/03/14 Python
python制作简单五子棋游戏
2019/06/18 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
Myprotein荷兰官网:欧洲第一运动营养品牌
2020/07/11 全球购物
DOUGLAS荷兰:购买香水和化妆品
2020/10/24 全球购物
物流专业大学生的自我鉴定
2013/11/13 职场文书
廉政教育的心得体会
2014/09/01 职场文书
群众路线教育实践活动心得体会(教师)
2014/10/31 职场文书
庭外和解协议书
2016/03/23 职场文书
详解Python牛顿插值法
2021/05/11 Python
SpringBoot实现异步事件驱动的方法
2021/06/28 Java/Android