小试牛刀,第一试卷网试卷下载

临近期末考试了,同时前段时间看到网上有一个第一试卷网试卷下载的小程序,但是感到不是很方便,于是自己就写了个小程序,也算是小试牛刀,希望高手给予指正!

import requests
from bs4 import BeautifulSoup
import time
def open_test(url,header):      #打开网页
    html = requests.get(url,headers=header)
    html.encoding= "gb2312"
    soup = BeautifulSoup(html.text,"html.parser")
    return soup
def down_test(url,header):       #展示试卷列表
    #试卷列表
    #soup = open_test(url,header)
    test_list = soup.find("ul", class_="c1")
    test_tr = test_list.find_all("tr")
    for tr in test_tr:
        if verson in tr.text:
            test_td = tr.find("a").get("href")
            ur = test_td.split("/")[-1]
            name = tr.find("a").string              #试卷的文件名
            test_ur = url+"/"+ur       #试卷下载网址
            test = requests.get(test_ur,headers=header)
            test.encoding="gb2312"
            test_soup = BeautifulSoup(test.text,"html.parser")
            test_html = test_soup.find("ul",class_="downurllist")
            test_u= test_html.find("a").get("href")
            test_down = requests.get(u+test_u,headers=header)
            with open(path+"\\"+name+".rar","wb") as f:
                f.write(test_down.content)

if __name__ == '__main__':
    print("\n",
        "数据来源:第一试卷网(www.shijuan1.com)  仅支持个人研究和学习,商用请联系官方授权.\n")
    print("声明:本代码仅供学习研究使用,请勿用于商业用途,否则后果自负!")
    print("声明:本代码仅供学习研究使用,请勿用于商业用途,否则后果自负!")
    print("声明:本代码仅供学习研究使用,请勿用于商业用途,否则后果自负!\n")
    sb = ["语文试卷","数学试卷","英语试卷","物理试卷","化学试卷","政治试卷","历史试卷","地理试卷","生物试卷"]
    gd = "一年级  二年级  三年级  四年级  五年级  六年级  七年级  八年级  九年级  中考试卷  高一  高二  高三  高考试卷"
    for i in sb:
        if i =="语文试卷" or i =="数学试卷" or i =="英语试卷":
            print(f'{i}:{"  "}{gd}',"\n")
        elif i =="物理试卷" :
            print(f'{i}:{"  "}{gd[35:]}',"\n")
        elif  i=="化学试卷":
            print(f'{i}:{"  "}{gd[40:]}',"\n")
        elif i =="政治试卷" or i =="历史试卷":
            print(f'{i}:{"  "}{gd[30:]}',"\n")
        else:
            print(f'{i}:{"  "}{gd[30:38]}{gd[42:]}',"\n")
    u = "https://www.shijuan1.com/"
    header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"}
    subject = {
        "语文试卷":'/a/sjyw',"数学试卷":'/a/sjsx',"英语试卷":'/a/sjyy',"物理试卷":'/a/sjwl',"化学试卷":'/a/sjhx',
		"政治试卷":'/a/sjzz',"历史试卷":'/a/sjls',"地理试卷":'/a/sjdl',"生物试卷":'/a/sjsw'
    }
    grade = {
        "一年级":"1","二年级":"2","三年级":"3","四年级":"4","五年级":"5","六年级":"6","七年级":"7","八年级":"8","九年级":"9",
        "中考试卷":"zk","高一":"g1","高二":"g2","高三":"g3","高考试卷":"gk"
    }
    s = input("请输入科目名称:")
    print("\n")
    g = input("请输入年级:")
    print("\n")
    url = u + subject[s] + grade[g]
    verson=input("请输入版本信息:")
    print("\n")
    path = input("请输入要保存文件的路径:")
    print("\n")
    html = requests.get(url, headers=header)
    html.encoding = "gb2312"
    soup = BeautifulSoup(html.text, "html.parser")
    page = soup.find("ul", class_="pagelist")
    count = page.find("strong").string
    try:
        page_ul = page.find("a").get("href").rsplit("_", 1)[0]
    except:
        count
    for i in range(1, int(count) + 1):
        if i == 1:
            down_test(url, header)
        else:
            page_url = url + "/" + page_ul + "_" + str(i) + ".html"
            soup=open_test(page_url, header)
            down_test(url, header)
    print("下载完成")
    time.sleep(10)

本程序可以根据【科目名称】、【年级】以及需要的【版本】进行筛选,需要输入四个内容,在输入内容时要注意:

①科目可以输入:"语文试卷","数学试卷","英语试卷","物理试卷","化学试卷","政治试卷","历史试卷","地理试卷","生物试卷"。(输入时省略双引号,下同)
②年级可以输入:"一年级"、"二年级"、……"九年级"、"中考试卷"、……"高考试卷"等。(具体科目对应的年级,程序运行成功会有提示的)
③版本可以输入:“人教版”。(推测可能由“苏教版”等等,具体可以登录“第一试卷网”查看后,根据实际需要填写)
④路径为保存下载文件的文件夹(可以新建)如输入:C:\Users\WCQTJJLXQ\Desktop\语文试卷

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值