gpt4 book ai didi

python - 使用 BeautifulSoup 从
转载 作者:太空宇宙 更新时间:2023-11-04 09:37:06 28 4
gpt4 key购买 nike

我正在使用 BeautifulSoup 从此页面提取所有链接:http://kern.humdrum.org/search?s=t&keyword=Haydn

我通过这种方式获取所有这些链接:

# -*- coding: utf-8 -*-

from urllib.request import urlopen as uReq
from bs4 import BeautifulSoup as soup

my_url = 'http://kern.humdrum.org/search?s=t&keyword=Haydn'

#opening up connecting, grabbing the page
uClient = uReq(my_url)

# put all the content in a variable
page_html = uClient.read()

#close the internet connection
uClient.close()

#It does my HTML parser
page_soup = soup(page_html, "html.parser")

# Grab all of the links
containers = page_soup.findAll('a', href=True)
#print(type(containers))

for container in containers:
link = container
#start_index = link.index('href="')
print(link)
print("---")
#print(start_index)

我的部分输出是: enter image description here

请注意,它返回了几个链接,但我真的想要所有带有 >Someting 的链接。 (例如,“>Allegro”和“Allegro vivace”等)。

我很难获得以下类型的输出(图像示例):“快板 - http://kern.ccarh.org/cgi-bin/ksdata?location=users/craig/classical/beethoven/piano/sonata&file=sonata01-1.krn&format=info

换句话说,在这一点上,我有一堆 anchor 标签(+- 1000)。从所有这些标签中,有一堆只是“垃圾”和 +- 350 个我想提取的标签。所有这些标签看起来几乎相同,但唯一的区别是我需要的标签末尾有一个“>某人的名字<\a>”。我只想提取具有此特征的所有 anchor 标签的链接。

最佳答案

从我在图片中看到的,带有信息的那些有一个包含 format="info"href 属性,因此您可以使用 attribute=value CSS 选择器[href*=format="info"] ,其中*表示包含;属性值包含第一个等号之后的子字符串。

import bs4 , requests

res = requests.get("http://kern.humdrum.org/search?s=t&keyword=Haydn")
soup = bs4.BeautifulSoup(res.text,"html.parser")
for link in soup.select('[href*=format="info"]'):
print(link.getText(), link['href'])

关于python - 使用 BeautifulSoup 从 <a href 标签中提取特定页面链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53245761/

28 4 0

Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com