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获取当前计算机cpu数量的方法
Apr 18 Python
Python利用Beautiful Soup模块修改内容方法示例
Mar 27 Python
pytorch 把MNIST数据集转换成图片和txt的方法
May 20 Python
Matplotlib 生成不同大小的subplots实例
May 25 Python
python后端接收前端回传的文件方法
Jan 02 Python
python Pandas如何对数据集随机抽样
Jul 29 Python
pygame实现成语填空游戏
Oct 29 Python
python进程间通信Queue工作过程详解
Nov 01 Python
基于python实现计算两组数据P值
Jul 10 Python
python drf各类组件的用法和作用
Jan 12 Python
python实现录制全屏和选择区域录屏功能
Feb 05 Python
Python简易开发之制作计算器
Apr 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导出中文乱码及phpmyadmin导入中文乱码的解决方法
2010/06/11 PHP
php过滤敏感词的示例
2014/03/31 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
PHP面向对象详解(三)
2015/12/07 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
初学prototype,发个JS接受URL参数的代码
2006/09/25 Javascript
JQuery 学习技巧总结
2010/05/21 Javascript
判断用户是否在线的代码
2011/03/05 Javascript
JQuery调用WebServices的方法和4个实例
2014/05/06 Javascript
Flexigrid在IE下不显示数据的有效处理方法
2014/09/04 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
JS动态创建DOM元素的方法
2015/06/09 Javascript
详解javascript获取url信息的常见方法
2016/12/19 Javascript
jquery做个日期选择适用于手机端示例
2017/01/10 Javascript
ES6学习之变量的解构赋值
2017/02/12 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
React Native 图片查看组件的方法
2018/03/01 Javascript
Javascript的console['']常用输入方法汇总
2018/04/26 Javascript
js根据json数据中的某一个属性来给数据分组的方法
2018/10/08 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序实现张图片合成为一张并下载
2019/07/16 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
2020/07/20 Javascript
Python中optionParser模块的使用方法实例教程
2014/08/29 Python
Python线程中对join方法的运用的教程
2015/04/09 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
matplotlib设置颜色、标记、线条,让你的图像更加丰富(推荐)
2020/09/25 Python
Python之字符串的遍历的4种方式
2020/12/08 Python
List, Set, Map是否继承自Collection接口?
2016/05/16 面试题
中英双版中文教师求职信
2013/10/27 职场文书
求职毕业生自荐书
2014/02/08 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
2016中秋节月饼促销广告语
2016/01/28 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
MySQL创建索引需要了解的
2021/04/08 MySQL