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运行效率的方法之间的对比
Apr 03 Python
Python随机生成均匀分布在单位圆内的点代码示例
Nov 13 Python
快速查询Python文档方法分享
Dec 27 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
Mar 01 Python
python3.x实现base64加密和解密
Mar 28 Python
Python OS模块实例详解
Apr 15 Python
Tensorflow 自定义loss的情况下初始化部分变量方式
Jan 06 Python
Python中pyecharts安装及安装失败的解决方法
Feb 18 Python
python利用datetime模块计算程序运行时间问题
Feb 20 Python
Python importlib模块重载使用方法详解
Oct 13 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
Oct 27 Python
Django中session进行权限管理的使用
Jul 09 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新手上路(十)
2006/10/09 PHP
Linux中用PHP判断程序运行状态的2个方法
2014/05/04 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
浅谈PHP面向对象之访问者模式+组合模式
2017/05/22 PHP
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
2011/11/30 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
php,js,css字符串截取的办法集锦
2014/09/26 Javascript
jquery删除指定子元素代码实例
2015/01/13 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
javascript实现删除前弹出确认框
2015/06/04 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
jQuery时间验证和转换为标准格式的时间格式
2017/03/06 Javascript
微信小程序实现获取自己所处位置的经纬度坐标功能示例
2017/11/30 Javascript
AngularJS 事件发布机制
2018/08/28 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
OpenLayer3自定义测量控件MeasureTool
2020/09/28 Javascript
Python中的filter()函数的用法
2015/04/27 Python
Python 处理图片像素点的实例
2019/01/08 Python
基于Django快速集成Echarts代码示例
2020/12/01 Python
python 实现全球IP归属地查询工具
2020/12/18 Python
英国百年闻名的优质健康产品连锁店:Holland & Barrett
2019/12/19 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
会计系中文个人求职信
2013/12/24 职场文书
服务理念标语
2014/06/18 职场文书
挂职学习心得体会
2014/09/09 职场文书
对外汉语专业大学生职业生涯规划范文
2014/09/13 职场文书
基层党员群众路线整改措施及努力方向
2014/10/28 职场文书
2014年污水处理厂工作总结
2014/12/19 职场文书
工程部文员岗位职责
2015/02/04 职场文书
Java实现学生管理系统(IO版)
2022/02/24 Java/Android