selenium与xpath之获取指定位置的元素的实现
作者:封妖师的徒弟 发布时间:2022-01-14 12:02:35
标签:selenium,xpath,元素
今天有点新的与大家分享,关于selenium与xpath之间爬数据获取指定位置的时候,方式不一样哦。
详情可以看我的代码,以b站来看好吧:
查看这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()
这是这个结果
来源:https://blog.csdn.net/XY52wiue/article/details/113007578


猜你喜欢
- select a.*,b.SumPoint from Expert_Topic_Index a,(
- 前言相信在日常生活中,平常大家聚在一起总会聊聊天,特别是女生(有冒犯到doge)非常喜欢聊星座,这个男生什么星座呀,那个男生什么星座呀…今天
- 引言这篇文章介绍如何实现页面与 iframe 进行通信,实际工作中可能很难遇到,但一旦遇到了,我们要能够立即想到怎样去实现。iframe 向
- 1、从Kmeans说起Kmeans是一个非常基础的聚类算法,使用了迭代的思想,关于其原理这里不说了。下面说一下如何在matlab中使用kme
- 本文实例为大家分享了python实现FTP文件下载功能的具体代码,供大家参考,具体内容如下代码:#-*-coding:utf-8-*- im
- 想要asp能连接mysql数据库需要安装MySQL ODBC 3.51 驱动 http://www.jb51.net/softs/19910
- 本文实例讲述了PHP中PDO事务处理操作。分享给大家供大家参考,具体如下:概要:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么
- 写完调用天气接口的demo之后,小程序调用天气接口并且渲染在页面,顺便再调用了一下美图的接口API:美图APIurlwxml:<vie
- 作为站长而言,有时候我们可能会碰到更换服务器或者为网站做一个整体布局修改和升级,我们首先需要做的就是对数据库和整个wordpress网站的
- 今天,我们来分享一个宠物桌面小程序,全程都是通过 PyQT 来制作的,对于 Python GUI 感兴趣的朋友,千万不要错过哦!我们先来看看
- 写这篇博客主要是因为在修改DataFrame列值的时候经常遇到bug,但到目前还没把这种错误复现出来。DataFrame是Pandas中的主
- 记录了mysql 8.0.12下载安装教程,分享给大家。下载下载地址如图下载以后将安装包解压到任意文件夹,我这里解压到E盘。安装1、解压以后
- 最近迷上了高效处理数据的pandas,其实这个是用来做数据分析的,如果你是做大数据分析和测试的,那么这个是非常的有用的!!但是其实我们平时在
- 1 文件'''文件存储文件主名.扩展名'''Python中常有的数据文件类型有文本文件、二进
- 在python中的数据类型和控制流这篇文章中我们提到过列表,它是基本的数据类型之一。通俗来说,它就是用来存储一系列数据的。比如存储一个班级的
- 打开sqlserver时提示评估期已过解决方法:打开sqlserver安装中心(注意:选择R2的安装中心)选择版本升级中途可能会出现需要重启
- Pytorch中,变量参数,用numel得到参数数目,累加def get_parameter_number(net): tota
- 说明本文根据https://github.com/liuchengxu/blockchain-tutorial 的内容,用python实现的
- 最近将Pytorch程序迁移到GPU上去的一些工作和思考环境:Ubuntu 16.04.3Python版本:3.5.2Pytorch版本:0
- 前言本文的github仓库地址为: 替换照片人物背景项目(模型文件过大,不在仓库中)由于模型文件过大,没放在仓库中,本文下面有模型下载地址。