首页 > 编程知识 正文

用Python爬取中国大学排行榜

时间:2023-11-21 12:34:24 阅读:287187 作者:LNXV

本文将介绍如何用Python爬取中国大学排行榜,包括获取页面HTML、解析页面、存储数据等内容。

一、获取页面HTML

要爬取数据,首先需要获取页面HTML。这可以通过Python中的requests库实现:

import requests

url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html'
response = requests.get(url)

print(response.text)

上述代码中,我们首先需要指定要爬取的网址,这里使用了2021年的中国大学排行榜。接着使用requests库发送一个HTTP GET请求获取页面数据,最后使用response.text打印出获取到的HTML代码。

二、解析HTML页面

获取到页面HTML之后,接下来需要解析HTML,提取页面数据。这里我们使用BeautifulSoup库:

import requests
from bs4 import BeautifulSoup

url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html'
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

print(soup)

上述代码中,我们导入了BeautifulSoup库,并传入了response.text和html.parser,将页面HTML代码转换成BeautifulSoup对象。这样我们就可以用BeautifulSoup提供的各种方法来提取页面中的数据了。

三、提取数据

根据页面结构,大学排名和大学名称都在表格中,所以我们可以通过提取表格数据的方式来获取排名信息。

import requests
from bs4 import BeautifulSoup

url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html'
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

table = soup.find('table', {'class': 'tableList'})

rank_list = []

for tr in table.find_all('tr'):
    rank_info = []
    for td in tr.find_all('td'):
        rank_info.append(td.text.strip())
    if rank_info:
        rank_list.append(rank_info)

print(rank_list)

上述代码中,我们首先使用find方法找到排名表格,并进一步使用find_all方法找到所有的行和单元格,使用strip方法去除空白符和换行符。最后将提取到的数据存储到rank_list中。

四、存储数据

得到了提取到的数据之后,我们可以将数据保存到本地文件或数据库中。

import requests
from bs4 import BeautifulSoup
import csv

url = 'http://www.zuihaodaxue.com/zuihaodaxuepaiming2021.html'
response = requests.get(url)

soup = BeautifulSoup(response.text, 'html.parser')

table = soup.find('table', {'class': 'tableList'})

rank_list = []

for tr in table.find_all('tr'):
    rank_info = []
    for td in tr.find_all('td'):
        rank_info.append(td.text.strip())
    if rank_info:
        rank_list.append(rank_info)

with open('university_rank.csv', 'w', newline='') as f:
    writer = csv.writer(f)
    writer.writerows(rank_list)

上述代码中,我们使用csv库将提取到的数据存储到CSV文件中。这里使用了open方法打开一个文件,传入'w'表示写入模式,传入newline=''表示不插入额外的换行符。然后使用csv.writer创建一个写入器对象,传入文件句柄和CSV格式参数。最后使用writerows方法将rank_list写入到CSV文件中。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。