本帖最后由 风在前,无惧 于 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:}
|