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/ironpython:从入门到精通
Oct 02 Python
python通过定义一个类实例作为ftp回调方法
May 04 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
python使用递归的方式建立二叉树
Jul 03 Python
python实现按关键字筛选日志文件
Dec 24 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
PyTorch中Tensor的数据统计示例
Feb 17 Python
PyQt使用QPropertyAnimation开发简单动画
Apr 02 Python
解决django 向mysql中写入中文字符出错的问题
May 18 Python
Python如何定义有可选参数的元类
Jul 31 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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
php5编程中的异常处理详细方法介绍
2008/07/29 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
php微信开发之百度天气预报
2016/11/18 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
用JavaScript对JSON进行模式匹配 (Part 2 - 实现)
2010/07/17 Javascript
关于jQuery UI 使用心得及技巧
2012/10/10 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
使用js完成节点的增删改复制等的操作
2014/01/02 Javascript
js交换排序 冒泡排序算法(Javascript版)
2014/10/04 Javascript
JavaScript中的console.log()函数详细介绍
2014/12/29 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
微信小程序将字符串生成二维码图片的操作方法
2018/07/17 Javascript
javascript获取元素的计算样式
2019/05/24 Javascript
微信小程序实现注册登录功能(表单校验、错误提示)
2019/12/10 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
vue 解决兄弟组件、跨组件深层次的通信操作
2020/07/27 Javascript
[02:24]DOTA2痛苦女王 英雄基础教程
2013/11/26 DOTA
使用python统计文件行数示例分享
2014/02/21 Python
Python编写屏幕截图程序方法
2015/02/18 Python
Python计算回文数的方法
2015/03/11 Python
Python中的连接符(+、+=)示例详解
2017/01/13 Python
Pandas对每个分组应用apply函数的实现
2020/12/13 Python
市政管理求职信范文
2014/05/07 职场文书
员工工作自我评价
2014/09/26 职场文书
教师群众路线剖析材料
2014/09/29 职场文书
离婚协议书范本2014
2014/10/27 职场文书
开学典礼致辞
2015/07/29 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
周一给客户的问候语
2015/11/10 职场文书
goland设置颜色和字体的操作
2021/05/05 Golang
vue2实现provide inject传递响应式
2021/05/21 Vue.js
python面向对象版学生信息管理系统
2021/06/24 Python
python文件与路径操作神器 pathlib
2022/04/01 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫