xpath安装(如何在python中使用xpath)

:暂无数据 2026-05-06 02:45:01 0

xpath安装(如何在python中使用xpath)

本篇文章给大家谈谈xpath安装,以及如何在python中使用xpath对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录

如何在python中使用xpath

在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也能分析html结构), 利用其lxml.html的xpath对html进行分析,获取抓取信息。
首先,我们需要安装一个支持xpath的python库。目前在libxml2的网站上被推荐的python binding是lxml,也有beautifulsoup,不嫌麻烦的话还可以自己用正则表达式去构建,本文以lxml为例讲解。
假设有如下的HTML文档:
1 《html》
2 《body》
3 《form》
4 《div id=’leftmenu’》
5 《h3》text《/h3》
6 《ul id=’china’》《!-- first location --》
7 《li》...《/li》
8 《li》...《/li》
9 ......
10 《/ul》
11 《ul id=’england’》《!-- second location--》
12 《li》...《/li》
13 《li》...《/li》
14 ......
15 《/ul》
16 《/div》
17 《/form》
18 《/body》
19 《/html》
直接使用lxml处理:
1 import codecs
2 from lxml import etree
3 f=codecs.open("ceshi.html","r","utf-8")
4 content=f.read()
5 f.close()
6 tree=etree.HTML(content)
etree提供了HTML这个解析函数,现在我们可以直接对HTML使用xpath了,是不是有点小激动,现在就尝试下吧。
在使用xpath之前我们先来看看作为对照的jQuery和RE。
在jQuery里要处理这种东西就很简单,特别是假如那个ul节点有id的话(比如是《ul id=’china’》):
$("#china").each(function(){...});
具体到此处是:
$("#leftmenu").children("h3:contains(’text’)").next("ul").each(function(){...});
找到id为leftmenu的节点,在其下找到一个内容包含为”text”的h3节点,再取其接下来的一个ul节点。
在python里要是用RE来处理就略麻烦一些:
block_pattern=re.compile(u"《h3》档案《/h3》(.*?)《h3》", re.I | re.S)
m=block_pattern.findall(content)
item_pattern=re.compile(u"《li》(.*?)《/li》", re.I | re.S)
items=item_pattern.findall(m)
for i in items:
print i
那么用xpath要怎么做呢?其实跟jQuery是差不多的:
nodes=tree.xpath("/descendant::ul")
当然,现在没有id的话也就只能用类似于jQuery的方法了。完整的xpath应该是这样写的(注意,原文件中的TAG有大小写的情况,但是在XPATH里只能用小写):
nodes=tree.xpath(u"/html/body/form/div")
更简单的方法就是像jQuery那样直接根据id定位:
nodes=tree.xpath(u"//div")
这两种方法返回的结果中,nodes就是那个“text”的h3节点后面紧跟的第一个ul节点,这样就可以列出后面所有的ul节点内容了。
如果ul节点下面还有其他的节点,我们要找到更深节点的内容,如下的循环就是把这些节点的文本内容列出:
nodes=nodes.xpath("li/a")
for n in nodes:
print n.text
对比三种方法应该可以看出xpath和jQuery对于页面的解析都是基于XML的语义进行,而RE则纯粹是基于plain text。RE对付简单的页面是没有问题,如果页面结构复杂度较高的时候(比如一堆的DIV来回嵌套之类),设计一个恰当的RE pattern可能会远比写一个xpath要复杂。特别是目前主流的基于CSS的页面设计方式,其中大部分关键节点都会有id――对于使用jQuery的页面来说则更是如此,这时xpath相比RE就有了决定性的优势。
附录:基本XPATH语法介绍,详细请参考XPath的官方文档
XPATH基本上是用一种类似目录树的方法来描述在XML文档中的路径。比如用“/”来作为上下层级间的分隔。第一个“/”表示文档的根节点(注意,不是指文档最外层的tag节点,而是指文档本身)。比如对于一个HTML文件来说,最外层的节点应该是”/html”。
同样的,“..”和“.”分别被用来表示父节点和本节点。
XPATH返回的不一定就是唯一的节点,而是符合条件的所有节点。比如在HTML文档里使用“/html/head/scrpt”就会把head里的所有script节点都取出来。
为了缩小定位范围,往往还需要增加过滤条件。过滤的方法就是用“”,即可取出body里id为main的div节点。
其中@id表示属性id,类似的还可以使用如@name, @value, @href, @src, @class….
而 函数text()的意思则是取得节点包含的文本。比如:《div》hello《p》world《/p》《 /div》中,用”div“即可取得这个div,而world则是p的text()。
函数position()的意思是取得节点的位置。比如“li”。
不过要注意的是数字定位和过滤 条件的顺序。比如“ul/li”的意思就不同,它表示寻找ul下第五个name为”hello“的li节点。
此外,“*”可以代替所有的节点名,比如用”/html/body/*/span”可以取出body下第二级的所有span,而不管它上一级是div还是p或是其它什么东东。
而 “descendant::”前缀可以指代任意多层的中间节点,它也可以被省略成一个“/”。比如在整个HTML文档中查找id为“leftmenu”的 div,可以用“/descendant::div”。
至于“following-sibling::”前缀就如其名所说,表示同一层的下一个节点。”following-sibling::*”就是任意下一个节点,而“following-sibling::ul”就是下一个ul节点。

chrome xpath插件怎么用

1.打开chrome的配置页面 - 如下图 点击右上方的配置 - 工具 - 扩展程序
2.打开 扩展程序 页面 如下: 点击 下方的 获取更多扩展程序
3.打开 chrome 网上应用店 如下: 搜索 Xpath - 找到
xpathOnClick 和 PsychoXPath
点击 右边的 添加至CHROME
4.安装完成后 在浏览器的右上角会显示一个Xpath的图标:
在页面中 右键 增加PsychoXPath 选项 说明安装成功

如何安装python中的parsel

python-parsel

Parsel是一个使用XPath和CSS选择器(可选地与正则表达式结合)从HTML和XML提取数据的库

一、安装

***隐藏网址***

pip安装:pip install parsel 默认安装的是最新版

pip install parsel=1.6.0 目前官方最新版本

PyCharm:File =》Setting =》Project:sintemple =》 Project:Interpreter =》点击右上角的加号(或者按快捷键Alt+Insert)=》在输入框中输入parsel,会出现一个只有parsel的一列,点击选择它 =》Install Package 等待安装完成就可以了(注:其中Specify version选中可以在下拉框中选择版本)

————————————————

二、Selector

Selector(text=None, type=None, namespaces=None, root=None,base_url=None, _expr=None)

创建解析HTML或XML文本的对象

参数:

text 在python2中是一个Unicode对象,在python3中是一个str对象

type 定义Selector类型,可以是"html",“xml"或者是None(默认),如果为None则默认选择为"html”

base_url allows setting a URL for the document. This is needed when looking up external entities with relative paths(允许为文档设置URL。在使用相对路径查找外部实体时,这是必需的)

Selector的对象方法

①. Selector.attrib()

返回基础元素的属性字典

②. Selector.css(query)

css选择器

③. Selector.get()

序列化并以单个unicode字符串返回匹配的节点

④. Selector.getall()

序列化并以第1个元素的unicode字符串列表返回匹配的节点

⑤. Selector.re(self, regex, replace_entities=True)

正则选择器

⑥. Selector.re_first(self, regex, default=None, replace_entities=True)

If the list is empty or the regex doesn’t match anything, return the default value (None if the argument is not provided)如果列表为空或正则表达式不匹配任何东西,返回默认值(如果没有提供参数,则返回’None’ )

⑦. Selector.remove()

Remove matched nodes from the parent for each element in this list.从父节点中删除列表中每个元素的匹配节点。

⑧. Selector.xpath(self, query, namespaces=None, **kwargs)

xpath选择器

SelectorList的对象方法

SelectorList类是内置list类的一个子类,它提供了一些额外的方法。

①. attrib 返回第一个元素的属性字典。如果列表为空,则返回空dict

②. css(query) .css()对该列表中的每个元素调用方法,然后将其结果展平为另一个SelectorList。query 与 Selector.css()

③. extract() 调用.get()此列表中每个元素的方法,并将其结果展平,以unicode字符串列表形式返回。

④. extract_first(default=None) 返回.get()此列表中第一个元素的结果。如果列表为空,则返回默认值。

⑤. get(default=None) 返回.get()此列表中第一个元素的结果。如果列表为空,则返回默认值。

⑥. getall() 调用.get()此列表中每个元素的方法,并将其结果展平,以unicode字符串列表形式返回。

⑦. re(regex, replace_entities=True) 调用.re()此列表中每个元素的方法,并将其结果展平,以unicode字符串列表形式返回。默认情况下,字符实体引用由其对应的字符替换(&和和除外《。以传递replace_entities,False关闭这些替换。

⑧. re_first(regex, default=None, replace_entities=True) 调用.re()此列表中第一个元素的方法,并以Unicode字符串返回结果。如果列表为空或正则表达式不匹配任何内容,则返回默认值(None如果未提供参数)。默认情况下,字符实体引用由其对应的字符替换(&和和除外《。以传递replace_entities,False关闭这些替换。

⑨. remove() 从父级中删除此列表中每个元素的匹配节点。

⑩. xpath(xpath, namespaces=None, **kwargs) .xpath()对该列表中的每个元素调用方法,然后将其结果展平为另一个SelectorList。query 与 Selector.xpath()namespaces是用于将其他前缀添加到已注册的前缀的可选映射(字典)。与相对,这些前缀不会保存以备将来使用。

举例说明:

html代码

————————————————

三、csstranslator

TranslatorMixin

This mixin adds support to CSS pseudo elements via dynamic dispatch.Currently supported pseudo-elements are ::text and ::attr(ATTR_NAME).

①. xpath_attr_functional_pseudo_element(xpath, function)

Support selecting attribute values using ::attr() pseudo-element

②. xpath_element(selector)

③. xpath_pseudo_element(xpath, pseudo_element)

Dispatch method that transforms XPath to support pseudo-element

④. xpath_text_simple_pseudo_element(xpath)

Support selecting text nodes using ::text pseudo-element

XPathExpr(path=’’, element=’*’, condition=’’, star_prefix=False)

GenericTranslator

HTMLTranslator(xhtml=False)

四、utils

extract_regex(regex, text, replace_entities=True)

Extract a list of unicode strings from the given text/encoding using the following policies: * if the regex contains a named group called “extract” that will be returned * if the regex contains multiple numbered groups, all those will be returned (flattened) * if the regex doesn’t contain any group the entire regex matching is returned

flatten(sequence) → list

Returns a single, flat list which contains all elements retrieved from the sequence and all recursively contained sub-sequences (iterables). Examples: 》》》

iflatten(sequence) → Iterator

Similar to .flatten(), but returns iterator instead

shorten(text, width, suffix=’…’)

Truncate the given text to fit in the given width.

————————————————

原文链接:网页链接

如何自动获取网页页面元素的xpath

xpath获取步骤:
1、打开火狐浏览器;
2、选择 “打开菜单” -》 "附加组件" 如下图所示:
3、在 “搜素所有附加组件” 输入框中搜索Firebug
4、搜索到 Firebug 单击安装:
5、用以上方法搜索 FirePath 并安装:
6、重启浏览器,插件安装成功;
7、打开要获取Xpath的网页并进行一下操作,即可获得元素XPath:

kibana xpath的安装与使用

Kibana是一个为 ElasticSearch 提供的数据分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。

X-pack监控组件使您可以通过Kibana轻松地监控ElasticSearch。您可以实时查看集群的健康和性能,以及分析过去的集群、索引和节点度量。此外,您可以监视Kibana本身性能。当你安装X-pack在群集上,监控代理运行在每个节点上收集和指数指标从Elasticsearch。安装X-pack在Kibana上,您可以查看通过一套专门的仪表板监控数据。你可以选择性地安装X-pack这个插件:

以上就成功的在ES5.1中安装了X-PACK

以上就成功安装x-pack到Kibana
如果不需要该插件,也可以通过非常简单的方式删除:
bin/elasticsearch-plugin
remove x-pack
重启ElasticSearch
bin/kibana-plugin
remove x-pack
重启Kibana
以上安装之后,就会发现ES的访问和Kibana的访问都受到限制,需要账户,

那么默认的用户名和密码是多少呢
ElasticSearch:
用户名:elastic
密码:changeme
登录到Kibana会发现 elastic是一个最高级别的user,拥有所有权限,其角色是superuser。
当然在这里我们也可以添加自定义的用户,并为其分配角色,不同的角色对应不同的功能。

我们不仅可以通过kibana可视化的界面来管理用户
另外我们也可以通过ES的Reset Password API来管理用户。

修改了kibana的密码之后,还需要修改kibana.yml的配置文件中

***隐藏网址***

xpack 过期
加免费授权
***隐藏网址***
或者 disable xpack

disable xpack的方法:
在elasticsearch.yml里加这么一行 xpack.security.enabled: false,
我同时又在kibana.yml里加上xpack.security.enabled: false

安装不了xpath helper插件怎么办

安装方式一:直接拖拽你的xpath-helper.crx插件到谷歌浏览器的扩展程序里。使用快捷钱ctrl+shift+x调出插件,如果没有成功,安装方式二进行安装
安装方式二:把你的插件扩展名改成rar,然后解压。再重新添加到你的谷歌浏览的扩展程序里面。使用快捷键查看是否安装成功。

Python解析库lxml与xpath用法总结

本文主要围绕以xpath和lxml库进行展开:

一、xpath 概念、xpath节点、xpath语法、xpath轴、xpath运算符

二、lxml的安装、lxml的使用、lxml案例


一、xpath

1.xpath概念

XPath 是一门在 XML 文档中查找信息的语言。XPath 使用路径表达式在 XML 文档中进行导航 。XPath 包含一个标准函数库 。XPath 是 XSLT 中的主要元素 。XPath 是一个 W3C 标准 。


2.xpath节点

xpath有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

节点关系:父、子、兄弟、先辈、后辈。


3.xpath语法

xpath语法在W3c网站上有详细的介绍,这里截取部分知识,供大家学习。

XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。下面列出了最有用的路径表达式:

在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:


谓语用来查找某个特定的节点或者包含某个指定的值的节点。

谓语被嵌在方括号中。

在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:


XPath 通配符可用来选取未知的 XML 元素。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:


通过在路径表达式中使用"|"运算符,您可以选取若干个路径。

在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:


4.xpath 轴

轴可定义相对于当前节点的节点集。


5.xpath运算符

下面列出了可用在 XPath 表达式中的运算符:

好了,xpath的内容就这么多了。接下来我们要介绍一个神器lxml,他的速度很快,曾经一直是我使用beautifulsoup时最钟爱的解析器,没有之一,因为他的速度的确比其他的html.parser 和html5lib快了许多。


二、lxml

1.lxml安装

lxml 是一个xpath格式解析模块,安装很方便,直接pip install lxml 或者easy_install lxml即可。


2.lxml 使用

lxml提供了两种解析网页的方式,一种是你解析自己写的离线网页时,另一种 则是解析线上网页。

导入包:


1.解析离线网页:

2.解析在线网页:

那么我们怎么获取这些标签和标签对应的属性值了,很简单,首先获取标签只需你这样做:

然后我们可以,比方说,你要获取a标签内的文本和它的属性href所对应的值,有两种方法,

1.表达式内获取

2.表达式外获取

这样就完成了获取,怎么样,是不是很简单了,哈哈哈。


下面再来lxml的解析规则:



3.lxml案例

为了偷懒,我决定还是采用urllib那篇文章的代码,哈哈哈,机智如我。

python使用xpath(超详细)

使用时先安装 lxml 包

开始使用 #

和beautifulsoup类似,首先我们需要得到一个文档树

把文本转换成一个文档树对象

from lxml import etreeif __name__ == ’__main__’:doc=’’’
把文件转换成一个文档树对象

fromlxmlimportetree# 读取外部文件 index.htmlhtml = etree.parse(’./index.html’)result = etree.tostring(html, pretty_print=True)#pretty_print=True 会格式化输出print(result)

均会打印出文档内容

节点、元素、属性、内容 #

xpath 的思想是通过 路径表达 去寻找节点。节点包括元素,属性,和内容

元素举例

html ---》...div ---》
这里我们可以看到,这里的元素和html中的标签一个意思。单独的元素是无法表达一个路径的,所以单独的元素不能独立使用

路径表达式 #

/  根节点,节点分隔符,//  任意位置.  当前节点..  父级节点@  属性

通配符 #

*  任意元素@*  任意属性node()  任意子节点(元素,属性,内容)

谓语 #

使用中括号来限定元素,称为谓语

//a  price值大于2的元素

多个路径 #

用| 连接两个表达式,可以进行 或匹配

//book/title | //book/price

函数 #

***隐藏网址***

contains(string1,string2)

starts-with(string1,string2)

ends-with(string1,string2) #不支持

upper-case(string) #不支持

text()

last()

position()

node()

可以看到last()也是个函数,在前面我们在谓语中已经提到过了

案例 #

定位元素 #

匹配多个元素,返回列表

fromlxmlimportetreeif__name__ ==’__main__’:doc=’’’
【结果为】

  #没找到p元素

html = etree.HTML(doc)print(etree.tostring(html.xpath("//li"))

【结果为】

b’ third item \n                ’None    #因为第三个li下面没有直接text,Nonethird item  #

使用函数 #

contains #

有的时候,class作为选择条件的时候不合适@class=’....’ 这个是完全匹配,当王爷样式发生变化时,class或许会增加或减少像active的class。用contains就能很方便

from lxml import etreeif __name__ == ’__main__’:doc=’’’
【结果为】



starts-with #

from lxml import etreeif __name__ == ’__main__’:doc=’’’
【结果为】



ends-with #

print(html.xpath("//*"))

【结果为】

Traceback (most recent call last):File"F:/OneDrive/pprojects/shoes-show-spider/test/xp5_test.py",line18,inprint(html.xpath("//*"))File"src\lxml\etree.pyx",line1582,inlxml.etree._Element.xpathFile"src\lxml\xpath.pxi",line305,inlxml.etree.XPathElementEvaluator.__call__File"src\lxml\xpath.pxi",line225,inlxml.etree._XPathEvaluatorBase._handle_resultlxml.etree.XPathEvalError: Unregisteredfunction

看来python的lxml并不支持有的xpath函数列表

upper-case #

和ends-with函数一样,也不支持。同样报错lxml.etree.XPathEvalError: Unregistered function

print(html.xpath("//a"))

text、last #

#最后一个li被限定了print(html.xpath("//li"))

【结果为】



position #

print(html.xpath("//li

上面这个例子我们之前以及讲解过了

* 这里有个疑问,就是position()函数能不能像text()那样用呢

print(html.xpath("//li/a/position()"))#结果  lxml.etree.XPathEvalError: Unregisteredfunction

这里我们得到一个结论,函数不是随意放在哪里都能得到自己想要的结果

node #

返回所有子节点,不管这个子节点是什么类型(熟悉,元素,内容)

print(html.xpath("//ul/li/node()"))print(html.xpath("//ul/node()"))

【结果为】



获取内容 #

**刚刚已经提到过,可以使用.text和text()的方式来获取元素的内容

from lxml import etreeif __name__ == ’__main__’:doc=’’’
【结果为】



看到这里,我们观察到text()和.text的区别。自己总结吧。不太好表达,就不表达了

获取属性 #

print(html.xpath("//a/@href"))print(html.xpath("//li/@class"))

【结果为】



自定义函数 #

***隐藏网址***

lxml supports XPath1.0, XSLT1.0andthe EXSLT extensions through libxml2andlibxsltina standards compliant way.

***隐藏网址***

from lxml import etree#定义函数def ends_with(context,s1,s2):return s1.endswith(s2)if __name__ == ’__main__’:doc=’’’
【结果为】



形参s1会传入xpath中的第一个参数@class,但这里注意@class是个列表

形参s2会传入xpath中的第二个参数’active’,’active’是个字符串

***隐藏网址***

defhello(context, a):return"Hello %s"% afromlxmlimportetreens = etree.FunctionNamespace(None)ns = helloroot = etree.XML(’《a》《b》Haegar《/b》《/a》’)print(root.xpath("hello(’Dr. Falken’)"))# 结果为 Hello Dr. Falken

关于本次xpath安装和如何在python中使用xpath的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。

xpath安装(如何在python中使用xpath)

本文编辑:admin

更多文章:


root手机会有什么后果(我想开启root权限,那么做之后对手机有什么危害吗)

root手机会有什么后果(我想开启root权限,那么做之后对手机有什么危害吗)

本篇文章给大家谈谈root手机会有什么后果,以及我想开启root权限,那么做之后对手机有什么危害吗对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了收藏本站喔。

2026年9月7日 21:00

win7更新和安全在哪里(win7 64位 windows update更新存储文件位置在哪里 啊)

win7更新和安全在哪里(win7 64位 windows update更新存储文件位置在哪里 啊)

本篇文章给大家谈谈win7更新和安全在哪里,以及win7 64位 windows update更新存储文件位置在哪里 啊对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,

2026年9月7日 18:50

阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)

阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)

“阿里旺旺苹果手机版”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看阿里旺旺苹果手机版(苹果iPhone 4手机能用阿里旺旺吗)!

2026年9月7日 17:50

qq号批发发卡网24小时(想卖qq去哪个平台)

qq号批发发卡网24小时(想卖qq去哪个平台)

“qq号批发发卡网24小时”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看qq号批发发卡网24小时(想卖qq去哪个平台)!

2026年9月7日 17:20

纸飞机app聊天软件下载(纸飞机app中文版下载社交)

纸飞机app聊天软件下载(纸飞机app中文版下载社交)

其实纸飞机app聊天软件下载的问题并不复杂,但是又很多的朋友都不太了解纸飞机app中文版下载社交,因此呢,今天小编就来为大家分享纸飞机app聊天软件下载的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月7日 14:30

raysource软件手机版下载(ray的这个软件你有吗)

raysource软件手机版下载(ray的这个软件你有吗)

今天给各位分享ray的这个软件你有吗的知识,其中也会对ray的这个软件你有吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

2026年9月7日 13:40

启动盘制作完成后怎么放入系统(u盘启动盘制作好了要怎么做才能装系统)

启动盘制作完成后怎么放入系统(u盘启动盘制作好了要怎么做才能装系统)

大家好,启动盘制作完成后怎么放入系统相信很多的网友都不是很明白,包括u盘启动盘制作好了要怎么做才能装系统也是一样,不过没有关系,接下来就来为大家分享关于启动盘制作完成后怎么放入系统和u盘启动盘制作好了要怎么做才能装系统的一些知识点,大家可以

2026年9月7日 13:30

电脑游戏免费软件(可以不花钱玩电脑游戏的,软件有哪些)

电脑游戏免费软件(可以不花钱玩电脑游戏的,软件有哪些)

本篇文章给大家谈谈电脑游戏免费软件,以及可以不花钱玩电脑游戏的,软件有哪些对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年9月7日 12:50

cpu天梯图2022年11月(2022手机cpu性能排行榜天梯图)

cpu天梯图2022年11月(2022手机cpu性能排行榜天梯图)

大家好,关于cpu天梯图2022年11月很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于2022手机cpu性能排行榜天梯图的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位

2026年9月7日 10:10

hotbox(hotbox raye歌词)

hotbox(hotbox raye歌词)

各位老铁们,大家好,今天由我来为大家分享hotbox,以及hotbox raye歌词的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

2026年9月7日 05:00

最近更新

热门文章

dessert(dessert是什么意思)
2026-05-03 12:45:03 浏览:7
标签列表