用pycharm爬取https://www.shanghairanking.cn/institution网站的前五页内容并按照校名、地区、管理部门、类别、双一流 共计5个字段进行解析最后保存到csv文件的代码
时间: 2024-04-03 21:35:14 浏览: 61
好的,这是一个比较复杂的任务,需要使用到requests、BeautifulSoup、pandas等库,以下是代码实现:
```python
import requests
from bs4 import BeautifulSoup
import pandas as pd
url = 'https://www.shanghairanking.cn/institution'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
data_list = []
for i in range(1, 6):
params = {
'type': '0',
'page': str(i),
'num': '20',
'sort': 'sort_xw'
}
response = requests.get(url, headers=headers, params=params)
soup = BeautifulSoup(response.text, 'html.parser')
table = soup.find('table', class_='rk-table')
tbody = table.find('tbody')
tr_list = tbody.find_all('tr')
for tr in tr_list:
td_list = tr.find_all('td')
name = td_list[0].text.strip()
region = td_list[1].text.strip()
manage = td_list[2].text.strip()
category = td_list[3].text.strip()
double_first_class = td_list[4].text.strip()
data_list.append([name, region, manage, category, double_first_class])
df = pd.DataFrame(data_list, columns=['校名', '地区', '管理部门', '类别', '双一流'])
df.to_csv('shanghairanking.csv', index=False, encoding='utf-8-sig')
print('数据已保存到shanghairanking.csv文件中!')
```
上述代码实现了爬取https://www.shanghairanking.cn/institution网站的前五页内容,并按照校名、地区、管理部门、类别、双一流共计5个字段进行解析,最后将结果保存到csv文件中。注意,代码中的headers是为了模拟浏览器访问,可以避免被网站封禁。
阅读全文