如何在Python中使用BeautifulSoup抓取来获取aria-label

问题描述 投票:0回答:1

我的 html 中有大量的 div 类。每个 div 类都包含一个 h3 类,其中包含一个 div aria-label,我想在 python 文件中抓取其文本。我已经能够创建外部 div 的列表,但我不确定如何在每个 div 内找到和使用 aria-label。

下面是我到目前为止的代码,并附上html文件的图片

import requests
from bs4 import BeautifulSoup

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36'}

url = "https://artsci.calendar.utoronto.ca/search-courses?page=0"
r = requests.get(url, headers = headers)
soup = BeautifulSoup(r.text, 'html.parser')

courses = soup.find_all('div', {'class': 'views-row'})

course_titles = []

for item in courses:
    # locate and add item's aria-label to the course_titles list

显示 div/h3/aria-label 结构的 html 参考

python html web-scraping beautifulsoup
1个回答
0
投票

您可以使用 CSS 选择器

bs4
select
select_one 方法:

labels = [d.get('aria-label') for d in soup.select('div.views-row > h3 > div')]
© www.soinside.com 2019 - 2024. All rights reserved.