如何用Python实现?

爬取 https://www.shanghairanking.cn/rankings/bcur/2022 网i5 内容,解析数据,并将中国大学排名信息保存到a.t 文件。

需要安装requests、lxml 库

import requests
from lxml import etree
import os

# 定义函数
def spyder(url):
    headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36"}
    html = requests.get(url,headers=headers)
    content = etree.HTML(html.content)
    
    # 获取排名
    order = content.xpath('//*[@id="content-box"]/div[2]/table/tbody/tr/td[1]/div/text()')
    # 获取学校名称
    name = content.xpath('//*[@id="content-box"]/div[2]/table/tbody/tr/td[2]/div/div[2]/div[1]/div/div/a/text()')
    
    # 存储的文件路径
    filepath = "a.t"
    # 如果文件已存在删除文件
    if (os.path.exists(filepath)):
        os.remove(filepath)
    # 将数据写入文件中(追加写,当文件不存在时会自动创建)
    file = open(filepath,"a+")
        
    # 同时循环遍历order,name两个集合
    for o,n in zip(order,name):
        # 去除排序值左右两边多余的空格
        o = o.strip() 
        file.write("排名:"+str(o)+"\t学校名称:"+n+"\n")
    # 关闭文件
    file.close()

# 定义网址调用函数
url = "https://www.shanghairanking.cn/rankings/bcur/2022"
spyder(url)