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 28 Python
用python找出那些被“标记”的照片
Apr 20 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
Python基于opencv实现的简单画板功能示例
Mar 04 Python
Python面向对象之类和实例用法分析
Jun 08 Python
Python数据存储之 h5py详解
Dec 26 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
Jan 20 Python
Python如何实现的二分查找算法
May 27 Python
python 多线程死锁问题的解决方案
Aug 25 Python
pytorch常用数据类型所占字节数对照表一览
May 17 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.MVC的模板标签系统(四)
2006/09/05 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
PHP环境中Memcache的安装和使用
2015/11/05 PHP
php通过执行CutyCapt命令实现网页截图的方法
2016/09/30 PHP
laravel 中某一字段自增、自减的例子
2019/10/11 PHP
HTTP头隐藏PHP版本号实现过程解析
2020/12/09 PHP
一个小例子解释如何来阻止Jquery事件冒泡
2014/07/17 Javascript
js图片实时加载提供网页打开速度
2014/09/11 Javascript
jquery插件jquery.nicescroll实现图片无滚动条左右拖拽的方法
2015/08/10 Javascript
浅析函数声明和函数表达式——函数声明的声明提前
2016/05/03 Javascript
JavaScript编写检测用户所使用的浏览器的代码示例
2016/05/05 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
setTimeout函数的神奇使用
2017/02/26 Javascript
获取url中用&隔开的参数实例(分享)
2017/05/28 Javascript
JS实现上传图片的三种方法并实现预览图片功能
2017/07/14 Javascript
springMvc 前端用json的方式向后台传递对象数组方法
2018/08/07 Javascript
微信小程序如何调用json数据接口并解析
2019/06/29 Javascript
js获取浏览器地址(获取第1个斜杠后的内容)
2019/09/03 Javascript
Vue路由对象属性 .meta $route.matched详解
2019/11/04 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
vue v-model的用法解析
2020/10/19 Javascript
Vue基本指令实例图文讲解
2021/02/25 Vue.js
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
Python中单、双下划线的区别总结
2017/12/01 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
使用Python的datetime库处理时间(RPA流程)
2019/11/24 Python
解决Python发送Http请求时,中文乱码的问题
2020/04/30 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
ASOS亚洲:ASOS Asia
2018/03/04 全球购物
Groupon荷兰官方网站:高达70%的折扣
2019/11/01 全球购物
市场营销专业毕业生自荐信
2013/11/02 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
交通事故赔偿协议书
2014/10/16 职场文书