python采集https://www.shanghairanking.cn/rankings/bcur/202111 这个网站的20页的数据代码
时间: 2023-11-15 16:06:16 浏览: 160
好的,你可以使用 requests 和 BeautifulSoup 库来实现:
```python
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/93.0.4577.63 Safari/537.36'
}
# 循环请求20页数据
for page in range(1, 21):
url = f"https://www.shanghairanking.cn/rankings/bcur/202111?page={page}"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# 解析数据
for tr in soup.select('#UniversityRanking > tbody > tr'):
rank = tr.select_one('.rk').text.strip()
name = tr.select_one('.univ-name').text.strip()
location = tr.select_one('.location').text.strip()
score = tr.select_one('.total-score').text.strip()
print(rank, name, location, score)
```
这个代码会爬取上海交通大学世界大学学术排名的数据,每页有25条数据,共爬取20页,将排名、学校名称、所在地、总分数输出到控制台。注意需要构造合适的请求头,以免被反爬虫机制拦截。
阅读全文