赞
踩
使用python对【软科-高等教育评价领先品牌 https://www.shanghairanking.cn/rankings/bcur/2020】进行爬取,然后存到sql数据库中(也有excel的代码),并且进行分析,获得每个省份的大学的种类的分布图。
这个项目特别有纪念意义,因为它让我深刻认识了SQL数据库语句的魅力还有matplotlib的重要性,另外还有Echarts的强大,还有如何通过修改官方实例得到自己想要的结果,还有urllib 爬虫与BeautifulSoup 网页解析。是一个很全面的锻炼。很多的注释没有删掉,是自己编敲边试的结果。
import bs4 from bs4 import BeautifulSoup #网页解析,获取数据 import urllib #订制url,获取网页数据 import urllib.error #请求网页如果出错的时候的分析 import urllib.request #请求网页获取 import re import os import requests import time import numpy as np import xlwt import sqlite3 def main(): #1.爬取网页 baseurl = "https://www.shanghairanking.cn/rankings/bcur/2020" print(baseurl) # ask_URL(baseurl) #自建函数,获取网页并存储为本地文本 #2.分析数据,解析数据(边爬取边解析,逐一解析,循环语句) get_data(baseurl) #自建函数,获取网页的本地文本里面的有用的表单 #得到指定某一个url的网页的内容,这是最基础的函数 def ask_URL(url): head = { "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.111 Safari/537.36"} request = urllib.request.Request(url, headers=head) html = "" try: response = urllib.request.urlopen(request) html = response.read().decode("utf-8") print(html) except urllib.error.URLError as e: if hasattr(e, "code"): print(e, code) if hasattr(e, "reason"): print(e, reason) print("访问成功") return html #最后返回,网页文本 def get_data(baseurl): data_list = [] # html = ask_URL(baseurl) html = open(r'./大学.html',"rb") # print(html) soup = BeautifulSoup(html, "html.parser") # print(soup) for item in soup.select('tr > td'): rx = item.get_text() re = rx.replace("\r\n", "") data_list.append(re.strip()) print(data_list) print(len(data_list)) print(data_list[0:6]) print(data_list[0:6]) ranking0 = [] uname1 = [] city2 = [] info3 = [] totalscore4=[] partscore5=[] ranking0.extend(data_list[0:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。