我想要一个方法来生成一个文件名为osu!我正在下载的地图。理想情况下,我会在HTML中查找某个短语beatmapsets?q=
,然后得到q=
后面的单词。你知道吗
我试过用lxml.html文件,但是我对此没有什么经验,在下面的代码中,它返回一个空列表。你知道吗
class OsuMaps:
def generateFileName(self, num1=None):
if not num1:
print("Missing required argument: 'num1'")
return
dl = requests.get(f"https://bloodcat.com/osu/s/{num1.rstrip()}")
# ..generate FinalName
tree = fromstring(dl.content)
FinalName = tree.xpath(
"//a[contains(@href='beatmapsets?q=')]"
)
return FinalName
osu - OsuMaps()
osu.generateFileName("653534") # ideal outcome - "653534 Panda Eyes - ILY"
理想的结果是评论,但我不知道从哪里开始。我只知道我需要的两个关键字[即songname,ILY和artist,Panda Eyes]在HTML中是:
<a class="beatmapset-header__details-text beatmapset-header__details-text--title u-ellipsis-overflow" href="/beatmapsets?q=ILY">ILY</a>
以及
<a class="beatmapset-header__details-text beatmapset-header__details-text--artist" href="/beatmapsets?q=Panda%20Eyes">Panda Eyes</a>
我还需要能够重用此代码,以便每次都能获得q=<text>
文本。你知道吗
根据请求documentation,
requests.get.content
返回原始字节响应。 您需要解析的是dl.text
。你知道吗@RomanPerekhrest也指出,给定的链接引用一个二进制文件,所以用
lxml
解析它是没有意义的。但是,您可以使用requests.head()
方法获取文件名并提取所需的数据。你知道吗尝试以下操作:
相关问题 更多 >
编程相关推荐