python 学习 输出排名后50位大学 DAY4

本博客介绍了一种使用Python爬取指定网页上的中国大学排名的方法。通过requests获取网页内容,利用BeautifulSoup解析HTML,并抓取表格中的排名、学校名称及总分等数据。最终将抓取的数据打印并保存到本地文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import requests
from bs4 import BeautifulSoup
import bs4
 
def getHTMLText(url):
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return "爬取异常"
 
def fillUnivList(ulist, html):
    soup = BeautifulSoup(html, "html.parser")
    data = soup.find_all('tr')
    #print(data)
    for tr in data:
        #print(tr)
        tds = tr('td')
        #print(tds)
        if len(tds)==0:
            continue
        ulist.append([tds[0].string,tds[1].string,tds[3].string])
    #print(ulist)
       
 
def printUnivList(ulist, num):
    print("{0:^10}\t{1:{3}^10}\t{2:^10}".format("排名","学校名称","总分",chr(12288)))
    for i in range(551,601):
        u=ulist[i]
        print("{0:^10}\t{1:{3}^10}\t{2:{3}^9.1f}".format(u[0],u[1],eval(u[2]),chr(12288)))
 
def wtxt(ulist,num):
    f = open(r"C:\Users\lenovo\Desktop\中国大学排名.txt",'w+')
    ls = ['排名','学校名称','总分']
    s = "\t\t".join(ls)
    f.write(s+'\n')
    for i in range(num):
        line = ulist[i]
        line = "\t\t".join(line)
        f.write(line+'\n')
    f.close()
        
        
     
def main():
    uinfo = []
    url = 'http://www.zuihaodaxue.cn/zuihaodaxuepaiming2018.html'
    html = getHTMLText(url)
    fillUnivList(uinfo, html)
    printUnivList(uinfo, 50) # 20 univs
    wtxt(uinfo,50)
main()
 

 

### 关于湖南大学头歌平台Python实训项目的电力输出预测 针对湖南大学头歌平台上关于Python实训中的电力输出预测项目,此类型的实训通常涉及多个方面,包括但不限于数据获取、预处理以及模型构建等。对于此类特定主题的实训内容,虽然直接提及该具体案例的信息有限,但从一般性的角度出发可以提供一个基于时间序列分析来进行电力输出预测的基础框架。 #### 数据准备阶段 在这个部分,主要工作围绕收集历史电力生产数据展开。这些数据可以从公开数据库下载或是模拟生成一组适合用于教学目的的时间序列数据集[^1]。 ```python import pandas as pd from datetime import timedelta, date def generate_date_range(start_date='2023-01-01', end_date='2023-12-31'): dates = [] start = pd.to_datetime(start_date) end = pd.to_datetime(end_date) delta = end - start for i in range(delta.days + 1): day = start + timedelta(days=i) dates.append(day.strftime('%Y-%m-%d')) return dates dates = generate_date_range() power_output = [round(800 + (i % 7)*50 + ((i//7)%4)*(-20), 2) for i in range(len(dates))] # Simulated power output values based on some pattern. df = pd.DataFrame({'Date': dates, 'PowerOutput(MW)': power_output}) print(df.head()) ``` #### 构建简单线性回归模型进行短期预测 利用上述创建的数据框`df`作为训练样本,下面展示了一个简单的线性回归算法来尝试对未来几天内的发电量做出估计。这里采用sklearn库里的LinearRegression类完成建模过程。 ```python from sklearn.model_selection import train_test_split from sklearn.linear_model import LinearRegression import numpy as np X = df.index.values.reshape(-1, 1) # 使用日期索引作为特征变量 y = df['PowerOutput(MW)'].values # 发电量为目标变量 # 划分测试集和训练集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) model = LinearRegression().fit(X_train, y_train) predictions = model.predict(X_test) for actual, predicted in zip(y_test[:5], predictions[:5]): print(f'Actual: {actual:.2f} MW | Predicted: {predicted:.2f} MW') ``` 需要注意的是,实际应用中还需要考虑更多因素如天气条件的影响等因素,并可能需要更复杂的机器学习方法或深度学习技术以提高预测精度。此外,由于目标是教育性质的教学材料而非工业级解决方案,因此简化了很多细节以便学生更容易理解核心概念。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值