https://www.shanghairanking.cn/ 爬出第一页各大学的排名、学校名、水平、地点、类型和总 分,以及图标。存储到csv文件中
时间: 2025-01-06 14:49:04 浏览: 15
要爬取上海交通大学世界大学学术排名(Shanghai Ranking)的第一页数据并将其保存到CSV文件中,我们可以使用Python的`requests`库来获取网页内容,然后利用如`BeautifulSoup`或`lxml`库解析HTML。以下是一个基本示例:
首先确保已经安装了必要的库,如果没有安装可以通过pip进行安装:
```bash
pip install requests beautifulsoup4 pandas
```
然后使用以下代码实现爬虫功能:
```python
import requests
from bs4 import BeautifulSoup
import csv
def get_shanghairanking_data():
url = "https://www.shanghairanking.cn/ARWU2022/"
# 发送GET请求
response = requests.get(url)
# 检查请求状态码
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'lxml')
# 找到表格元素,通常在data-tables或table-container内
table = soup.find('table', {'class': 'data-tables'})
data_rows = []
for row in table.find_all('tr'):
cols = row.find_all('td') or row.find_all('th') # 处理可能存在th的情况
cols = [col.text.strip() for col in cols]
if cols:
data_rows.append(cols)
# 写入CSV文件
with open('shanghairanking.csv', 'w', newline='', encoding='utf-8') as file:
writer = csv.writer(file)
writer.writerow(['Rank', 'University', 'Rating', 'Location', 'Type', 'Total Score']) # 表头
writer.writerows(data_rows)
else:
print(f"Failed to fetch the page. Status code: {response.status_code}")
get_shanghairanking_data()
```
这个脚本会抓取指定URL页面上的前几行数据(取决于网页结构),然后按照给定的表头写入CSV文件。请注意,实际的数据位置可能会根据网站更新而变化,因此可能需要调整查找CSS类或ID的选择器。
阅读全文