如何在Python中抓取列表



如果我的问题写得不正确,我提前道歉。我一直在努力https://www.bristol.ac.uk/study/undergraduate/search/search_results?sort=score&sort=本科生课程名称&dir=desc&dir=asc&查询=&filter%3本科生课程年数=2021&第1页

我只想要所有课程名称的文本。即使我使用了find-all,我编写的代码也只提供第一门课程的文本。我想这可能是因为课程在列表中。这是我的代码:

from bs4 import BeautifulSoup
import requests
source = requests.get("https://www.bristol.ac.uk/study/undergraduate/search/search_results?sort=score&sort=UndergraduateCourse-programname&dir=desc&dir=asc&query=&filter%3AUndergraduateCourse-year=2021&page=1").text
soup = BeautifulSoup(source, 'lxml')
for div in soup.find_all('div', class_='course-results course-results-ug'):
course = div.a.text
print(course)

输出:

Accounting and Finance
, 
BSc

请帮忙。我最近才开始,所以不知道任何高级编码

您可以使用CSS选择器.course-results-list a来获取课程列表下的所有链接:

import requests
from bs4 import BeautifulSoup

source = requests.get("https://www.bristol.ac.uk/study/undergraduate/search/search_results?sort=score&sort=UndergraduateCourse-programname&dir=desc&dir=asc&query=&filter%3AUndergraduateCourse-year=2021&page=1").text
soup = BeautifulSoup(source, 'lxml')
for a in soup.select('.course-results-list a'):
course = ', '.join(map(str.strip, a.text.split(',')))
print(course)

打印:

Accounting and Finance, BSc
Accounting and Finance with Professional Placement, BSc
Accounting and Finance with Study Abroad, BSc
Accounting and Management, BSc
Accounting and Management with Professional Placement, BSc
Accounting and Management with Study Abroad, BSc
Aerospace Engineering, BEng
Aerospace Engineering, MEng
Aerospace Engineering with Study Abroad, MEng
Aerospace Engineering with Study Abroad in a Modern Language, MEng

最新更新