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中用Ctrl+C终止多线程程序的问题解决
Mar 30 Python
浅析python中的分片与截断序列
Aug 09 Python
基于python内置函数与匿名函数详解
Jan 09 Python
python制作mysql数据迁移脚本
Jan 01 Python
Python3实现配置文件差异对比脚本
Nov 18 Python
Python 矩阵转置的几种方法小结
Dec 02 Python
Python命令行click参数用法解析
Dec 19 Python
python基于opencv检测程序运行效率
Dec 28 Python
Python request使用方法及问题总结
Apr 26 Python
基于Python快速处理PDF表格数据
Jun 03 Python
宝塔更新Python及Flask项目的部署
Apr 11 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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和XSS跨站攻击的防范
2007/04/17 PHP
thinkphp普通查询与表达式查询实例分析
2014/11/24 PHP
学习php设计模式 php实现抽象工厂模式
2015/12/07 PHP
PHP7 新增功能
2021/03/09 PHP
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
js 获取计算后的样式写法及注意事项
2013/02/25 Javascript
JavaScript 函数参数是传值(byVal)还是传址(byRef) 分享
2013/07/02 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
详解JavaScript逻辑Not运算符
2015/12/04 Javascript
js判断是否是手机页面
2017/03/17 Javascript
JavaScript实现动态添加Form表单元素的方法示例
2017/08/14 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
python实现的二叉树算法和kmp算法实例
2014/04/25 Python
Python实现比较扑克牌大小程序代码示例
2017/12/06 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
2018/06/13 Python
详解Python使用Plotly绘图工具,绘制甘特图
2019/04/02 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Scrapy中如何向Spider传入参数的方法实现
2020/09/28 Python
python3处理word文档实例分析
2020/12/01 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
护理职业应聘自荐书
2013/09/29 职场文书
某同学的自我鉴定范文
2013/12/26 职场文书
初一新生军训方案
2014/05/22 职场文书
建党伟业电影观后感
2015/06/01 职场文书
退休教师欢送会致辞
2015/07/31 职场文书
2016年寒假学习心得体会
2015/10/09 职场文书
《风筝》教学反思
2016/02/23 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
教你怎么用Python实现GIF动图的提取及合成
2021/06/15 Python
python函数的两种嵌套方法使用
2022/04/02 Python