python使用requests库及BeautifulSoup库爬取https://www.shanghairanking.cn/rankings/bcur/2023网站前20名高校信息,按照以下格式输出
时间: 2025-01-18 10:03:47 AIGC 浏览: 44
好的,我可以为您提供一个使用Python的requests库和BeautifulSoup库爬取指定网站高校信息的示例代码。以下是实现您需求的代码:
```python
import requests
from bs4 import BeautifulSoup
def get_university_rankings():
url = "https://www.shanghairanking.cn/rankings/bcur/2023"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36"
}
response = requests.get(url, headers=headers)
if response.status_code != 200:
print("Failed to retrieve the webpage")
return
soup = BeautifulSoup(response.content, "html.parser")
table = soup.find("table", {"id": "UniversityRankingTable"})
rows = table.find_all("tr")[1:21] # 获取前20行数据(包含表头)
for row in rows:
cols = row.find_all("td")
rank = cols[0].text.strip()
name = cols[1].find("a").text.strip()
score = cols[2].text.strip()
print(f"排名: {rank}")
print(f"学校名称: {name}")
print(f"得分: {score}")
print("-" * 30)
if __name__ == "__main__":
get_university_rankings()
```
这段代码的工作原理如下:
1. 导入必要的库: requests用于发送HTTP请求,BeautifulSoup用于解析HTML。
2. 定义get_university_rankings()函数:
- 设置目标URL和请求头。
- 发送GET请求获取网页内容。
- 检查请求是否成功。
- 使用BeautifulSoup解析HTML内容。
- 找到包含排名的表格。
- 获取前20行数据(包含表头)。
- 遍历每一行,提取排名、学校名称和得分。
- 以指定格式打印结果。
3. 在__main__块中调用函数。
运行这段代码时,它将访问指定的网站,解析前20名高校的信息,并按照"排名: X, 学校名称: Y, 得分: Z"的格式输出结果。
请注意,网站的结构可能会随时间变化,如果代码无法正常工作,可能需要根据最新的HTML结构进行调整。
阅读全文
相关推荐




















