用pycharm爬取软科-高等教育评价领先品牌院校的内容并按照校名、地区、管理部门、类别、双一流 共计5个字段进行解析最后保存到csv文件的代码
时间: 2023-12-25 19:03:42 浏览: 84
以下是用PyCharm爬取软科-高等教育评价领先品牌院校的内容并按照校名、地区、管理部门、类别、双一流共计5个字段进行解析最后保存到csv文件的代码:
```
import requests
from bs4 import BeautifulSoup
import csv
# 设置请求头
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'}
# 请求网页
url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2019.html'
response = requests.get(url, headers=headers)
# 解析网页
soup = BeautifulSoup(response.content, 'html.parser')
table = soup.find('table', attrs={'class': 'tablelist'})
# 获取表格头部信息
keys = []
for th in table.find_all('th'):
keys.append(th.text)
# 获取表格数据
data = []
for tr in table.find_all('tr')[1:]:
row = {}
tds = tr.find_all('td')
row[keys[0]] = tds[0].text.strip()
row[keys[1]] = tds[1].text.strip()
row[keys[2]] = tds[2].text.strip()
row[keys[3]] = tds[3].text.strip()
row[keys[4]] = tds[4].text.strip()
data.append(row)
# 将数据保存到csv文件中
with open('university.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.DictWriter(f, fieldnames=keys)
writer.writeheader()
writer.writerows(data)
print('数据保存成功!')
```
解析:
1. 首先,我们需要设置请求头,以模拟浏览器请求。
2. 然后,我们发送请求获取网页的HTML内容。
3. 接着,我们使用BeautifulSoup库解析HTML内容,找到表格数据。
4. 我们首先获取表头信息,然后逐行获取表格数据,将每行数据保存为一个字典类型,再将所有行的字典类型保存为一个列表。
5. 最后,我们使用csv库将数据写入csv文件中。
注意事项:
1. 在写入csv文件时,需要指定编码为utf-8,并设置newline='',否则会出现空行。
2. 在获取表格数据时,需要注意表格头部信息和表格数据的不同处理方式。
3. 在保存数据时,需要注意将数据保存为字典类型,并使用csv.DictWriter()函数进行写入。
阅读全文