吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 15098|回复: 59
上一主题 下一主题
收起左侧

[Python 转载] 小白练习-学而思试卷下载【新增PDF功能】

   关闭 [复制链接]
跳转到指定楼层
楼主
风在前,无惧 发表于 2022-1-8 17:24 回帖奖励
本帖最后由 风在前,无惧 于 2022-1-11 19:22 编辑

2022.1.10更新
朋友们说想要将下载的图片转换成PDF方便阅读,所以加了几行代码【下面代码已更新】
1.将图片转换成PDF需要用到img2pdf库
2.如果直接将下载的图片转换成PDF会出现图片宽高不相同,有点影响阅读如下图:


3.为了解决如2存在的问题,需要用到Pillow库来设置图片宽高,最终得到效果如图:



---------------------分割线【下面为原贴】------------------------
昨天逛论坛,看到大佬@wg198300 用易语言写了个学思试卷下载器(https://www.52pojie.cn/thread-1567349-1-1.html)
正好最近学了点爬虫,打算练练手用python写了个小程序
试卷网站是:http://dzs.hongkewangluo.com/
代码如下:
[Python] 纯文本查看 复制代码
import requests as req
import re
import os
import img2pdf
from PIL import Image as img

def download(url):
    context = req.get(url).text
    title = re.search('<title>(?P<title>.*?)</title>',context)
    pathurl = re.search('basepathh = "(?P<pageurl>.*?)";',context)
    page = re.search('bcount =(?P<page>.*?);',context)
    intpage = (int)(page.group("page").strip(" "))
    path = pathurl.group("pageurl")
    strtitle = (str)(title.group("title"))
    os.mkdir("shijuan/"+strtitle)
    name_list = []  #创建一个图片集合
    for p in range(intpage):
        imgname = str(p+1)+'.jpg'
        name_list.append(f"shijuan/{strtitle}/"+imgname)
        imgurl = index + path + imgname
        with open(f"shijuan/{strtitle}/"+imgname,mode="wb") as f:
            f.write(req.get(url=imgurl).content)
    print(f"试卷《{strtitle}》---下载完成!")
    #设置图片等宽高
    for i in name_list:
        image = img.open(i)
        out = image.resize((700,900),img.ANTIALIAS)
        out.save(i)
    #合成PDF文件
    with open(f"shijuan/{strtitle}/{strtitle}.pdf",mode="wb") as f:
        f.write(img2pdf.convert(name_list))
    print("PDF文件合成成功!")

if __name__ == '__main__':
    flag = "yes"
    index = 'http://dzs.hongkewangluo.com'
    #url = 'http://dzs.hongkewangluo.com/Index/article/aid/1528.html#p=1'
    while(flag=="yes"):
        url = input("请输入需要下载的试卷:")
        print("正在下载...")
        download(url)
        again = input("是否继续('yes'):")
        if again!="yes":
            flag = "no"



运行效果如下:


下载的图片和文件:

欢迎大家一起交流学习学习{:1_893:}

shijuan.jpg (98.08 KB, 下载次数: 9)

shijuan.jpg

免费评分

参与人数 6吾爱币 +6 热心值 +5 收起 理由
特急教师 + 1 + 1 谢谢@Thanks!
zlzyshzl110 + 1 + 1 搞成个小软件放出来就更好了
叫我小王叔叔 + 1 + 1 加几行代码,搞成pdf啊。
开心长寿果 + 1 热心回复!
wg198300 + 1 + 1 刚好看到,捧个场
zhu0598 + 1 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

推荐
dzq0210 发表于 2022-7-3 18:32
请输入需要下载的试卷:http://dzs.hongkewangluo.com/Index/article/aid/707.html#p=1
正在下载...
Traceback (most recent call last):
  File "D:/123/123.py", line 41, in <module>
    download(url)
  File "D:/123/123.py", line 15, in download
    os.mkdir("shijuan/"+strtitle)
FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'shijuan/八年级上册-人教版数学(上册)- 黄冈360°定制密卷(初中)(2021秋)'
请问是哪里出了问题?谢谢
推荐
 楼主| 风在前,无惧 发表于 2022-1-10 22:55 |楼主
zhu0598 发表于 2022-1-9 20:32
下载后如果直接合并成PDF文档会更方便阅读

可以可以,安排

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
zhu0598 + 1 + 1 谢谢@Thanks!

查看全部评分

沙发
立竿见影 发表于 2022-1-8 21:15
真好,悄悄问楼主:“楼主不放出小程序么?”
3#
 楼主| 风在前,无惧 发表于 2022-1-8 21:23 |楼主
立竿见影 发表于 2022-1-8 21:15
真好,悄悄问楼主:“楼主不放出小程序么?”

可以,源代码放这里了
下载:https://wwi.lanzouo.com/iFlOFyj76cd 密码:52pj
4#
lpzl 发表于 2022-1-8 21:54
是“学思”,不是“学而思”
5#
 楼主| 风在前,无惧 发表于 2022-1-8 22:10 |楼主
lpzl 发表于 2022-1-8 21:54
是“学思”,不是“学而思”

哈哈哈原来我一直看错啦
6#
Re.无双 发表于 2022-1-8 22:37
感谢分享,等下试试
7#
开心长寿果 发表于 2022-1-9 07:39
能打包成软件吗?谢谢,已评分
8#
holygate 发表于 2022-1-9 11:24
感谢分享,下来学习
9#
kinghan 发表于 2022-1-9 17:47
风在前,无惧 发表于 2022-1-8 21:23
可以,源代码放这里了
下载:https://wwi.lanzouo.com/iFlOFyj76cd 密码:52pj

小白求教,程序咋打开
10#
 楼主| 风在前,无惧 发表于 2022-1-9 19:20 |楼主
kinghan 发表于 2022-1-9 17:47
小白求教,程序咋打开

我只是提供爬取的思路。需要程序可以参考我引用的文章,他那里有可直接运行的程序
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 21:20

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表