在一个私有项目(学习python脚本)中,我只需要检索废弃页面的rpm包.我发现所有包链接(.msi、.deb、.rpm)在‘a’balise中都有一个名为data-link的属性.

我还使用了自己的正则表达式(https://regexr.com/6rqd2)来匹配我需要的包.

根据文档,这种属性(data-*)似乎是非标准的 属性在HTML5中.

因此,我try 了attrs参数,并将其传递给findall(),但没有成功.

以下代码未成功

#!/usr/bin/env python3

import re

from bs4 import BeautifulSoup


url = "https://www.splunk.com/en_us/download/splunk-enterprise.html"


page = requests.get(url)

soup = BeautifulSoup(page.content, 'html.parser')

pattern = re.compile("(?<=data-link=\")[^ ]+rpm")


package = soup.find_all(attrs={"data-link": pattern})

print(package)

预先感谢您的帮助

推荐答案

另一种解决方案是使用CSS Select 器:

import requests
from bs4 import BeautifulSoup


url = "https://www.splunk.com/en_us/download/splunk-enterprise.html"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

for a in soup.select('a[data-link$=".rpm"]'):
    print(a["data-link"])

打印:

https://download.splunk.com/products/splunk/releases/9.0.0.1/linux/splunk-9.0.0.1-9e907cedecb1-linux-2.6-x86_64.rpm

Python相关问答推荐

如何判断LazyFrame是否为空?

Python中两个矩阵的自定义Hadamard风格产物

使用imap-tools时错误,其邮箱地址包含域名中的非默认字符

在Arrow上迭代的快速方法.Julia中包含3000万行和25列的表

使文本输入中的文本与标签中的文本相同

在Python和matlab中显示不同 colored颜色 的图像

如何在Deliveryter笔记本中从同步上下文正确地安排和等待Delivercio代码中的结果?

Pythind 11无法弄清楚如何访问tuple元素

acme错误-Veritas错误:模块收件箱没有属性linear_util'

使用numpy提取数据块

海运图:调整行和列标签

加速Python循环

如何从.cgi网站刮一张表到rame?

如何使用pytest来查看Python中是否存在class attribution属性?

关于Python异步编程的问题和使用await/await def关键字

Pandas DataFrame中行之间的差异

如何在海上配对图中使某些标记周围的黑色边框

为什么t sns.barplot图例不显示所有值?'

使用tqdm的进度条

在电影中向西北方向对齐""