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增量循环删除MySQL表数据的方法
Sep 23 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
Python 读取图片文件为矩阵和保存矩阵为图片的方法
Apr 27 Python
Python实现识别图片内容的方法分析
Jul 11 Python
python变量的存储原理详解
Jul 10 Python
Python适配器模式代码实现解析
Aug 02 Python
利用anaconda作为python的依赖库管理方法
Aug 13 Python
python 修改本地网络配置的方法
Aug 14 Python
Python实现变声器功能(萝莉音御姐音)
Dec 05 Python
Python对象的属性访问过程详解
Mar 05 Python
Python 如何实现访问者模式
Jul 28 Python
如何在scrapy中捕获并处理各种异常
Sep 28 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
Mysql的常用命令
2006/10/09 PHP
PHP array_multisort()函数的使用札记
2011/07/03 PHP
PHP中如何判断AJAX提交的数据
2012/02/05 PHP
Yii Framework框架获取分类下面的所有子类方法
2014/06/20 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
一个非常完美的读写ini格式的PHP配置类分享
2015/02/12 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
2016/03/01 PHP
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
javascript从image转换为base64位编码的String
2014/07/29 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
详解动画插件wow.js的使用方法
2017/09/13 Javascript
常用的 JS 排序算法 整理版
2018/04/05 Javascript
微信小程序实现默认第一个选中变色效果
2018/07/17 Javascript
微信小程序全局变量功能与用法详解
2019/01/22 Javascript
Nodejs实现用户注册功能
2019/04/14 NodeJs
webpack4 配置 ssr 环境遇到“document is not defined”
2019/10/24 Javascript
nodeJS与MySQL实现分页数据以及倒序数据
2020/06/05 NodeJs
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
vant 中van-list的用法说明
2020/11/11 Javascript
NestJs使用Mongoose对MongoDB操作的方法
2021/02/22 Javascript
python简单猜数游戏实例
2015/07/09 Python
python中pylint使用方法(pylint代码检查)
2018/04/06 Python
Python中的random.uniform()函数教程与实例解析
2019/03/02 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Python离线安装各种库及pip的方法
2020/11/28 Python
档案管理员岗位职责
2013/12/01 职场文书
厨师长岗位职责
2014/03/02 职场文书
工厂采购员岗位职责
2014/04/08 职场文书
土地租赁协议书
2015/01/29 职场文书
跳高加油稿
2015/07/21 职场文书