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的Urllib库的一些高级用法
Apr 30 Python
python中map()函数的使用方法示例
Sep 29 Python
python正则表达式之对号入座篇
Jul 24 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
Python实现去除列表中重复元素的方法总结【7种方法】
Feb 16 Python
Django框架文件上传与自定义图片上传路径、上传文件名操作分析
May 10 Python
django做form表单的数据验证过程详解
Jul 26 Python
Tensorflow: 从checkpoint文件中读取tensor方式
Feb 10 Python
基于python3生成标签云代码解析
Feb 18 Python
python使用布隆过滤器的实现示例
Aug 20 Python
Python+OpenCV图像处理—— 色彩空间转换
Oct 22 Python
python标准库ElementTree处理xml
May 20 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 empty(),isset(),is_null()的实例测试详解
2013/06/06 PHP
PHP实现对xml的增删改查操作案例分析
2017/05/19 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
JS学习之一个简易的日历控件
2010/03/24 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
多种方法实现JS动态添加事件
2013/11/01 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
jQuery.holdReady()使用方法
2014/05/20 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
javascript对中文按照拼音排序代码
2014/08/20 Javascript
JavaScript中使用arguments获得函数传参个数实例
2014/08/27 Javascript
jQuery实现的超简单点赞效果实例分析
2015/12/31 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
JS中type="button"和type="submit"的区别
2017/07/04 Javascript
基于 Vue 的树形选择组件的示例代码
2017/08/18 Javascript
详解在Vue中有条件地使用CSS类
2017/09/30 Javascript
vue.js实现的绑定class操作示例
2018/07/06 Javascript
javascript数组元素删除方法delete和splice解析
2019/12/09 Javascript
javascript实现前端input密码输入强度验证
2020/06/24 Javascript
详解vue修改elementUI的分页组件视图没更新问题
2020/11/13 Javascript
[25:45]2018DOTA2亚洲邀请赛4.5SOLO赛 Sylar vs Paparazi
2018/04/06 DOTA
python检测某个变量是否有定义的方法
2015/05/20 Python
Python 获取numpy.array索引值的实例
2019/12/06 Python
Django User 模块之 AbstractUser 扩展详解
2020/03/11 Python
h5页面唤起app如果没安装就跳转下载(iOS和Android)
2020/06/03 HTML / CSS
Vans(范斯)德国官网:美国南加州的原创极限运动潮牌
2017/05/02 全球购物
辅导员评语
2014/05/04 职场文书
英文道歉信
2015/01/20 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
捐款通知怎么写
2015/04/24 职场文书
通知书大全
2015/04/27 职场文书
2015年关爱留守儿童工作总结
2015/05/22 职场文书
决心书格式范文
2015/09/23 职场文书