
各位老哥早上好,家里孩子上初中了经常需要各种试卷,我负责给他找试卷,主要用到的几个网站:学科网、组卷网和菁优网,之前有个 python 脚本可以把学科网的预览页面进行解析生成 html 文档,然后借助浏览器打印成 pdf 。但是最近学科网的文档预览机制(或者代码)好像做了修改,现在能够获取到的内容只有一部分,之前是可以全部预览的。那位老哥路过有时间帮忙看看或者分析下。 之前使用的代码如下:
import requests from re import findall, sub from hashlib import md5 HTML_FORMAT =''' <html> <head> <title>{title}</title> </head> <body> {body} </body> </html> ''' def writefile(filename,text): filename = sub(r"""[\*\/\\\|\<\>\? \:\.\'\"\!]""", "", filename) unique = md5(text.encode()) filename += "_"+unique.hexdigest()[:5] filename+=".html" print("Writing "+filename) # print("-=-=-=-=\n",text,"\n-=-=-=-=") with open(filename+'.html', 'w', encoding="utf-8") as f: f.write(text) def main(): softID=input("ID: ") url = "https://www.zxxk.com/soft/Preview/FirstLoadPreviewJson?softID={}&type=3&product=1&v=2&FullPreview=true" respOnse= requests.get(url.format(softID)) if response.status_code!=200: print("ERROR") print(response.status_code) return -1 ret=response.json()["data"] if not ret["IsSuccess"]: print("ERROR: IsSuccess option is not true") print(ret) if not ret['IsRar']: print("Not rar") print("TotalPage=%d" % ret['TotalPage']) print("SoftExt=%s" % ret['SoftExt']) try: html=ret["Html"] print(ret) except: print(ret) exit(1) # replace "data-original" to "src" for showing in browser html=html.replace("data-original", "src") writefile(f"{softID}",html) else: print("is RAR") rar=ret['rarPreviewInfo'] for file in rar: html=file["Html"] title=file["SoftName"] # replace "data-original" to "src" for showing in browser # html=html.replace("data-original", "src") urls=findall("(?<=data-original=\") https://preview.zxxk.com/\\S+(?=\")",html) l=[] for url in urls: if "jpg" in url: l.append(f"<img src={url} />") continue page=requests.get(url,cookies=response.cookies) if not page.status_code==200: print(page) print(page.status_code) print(page.text) assert page.status_code==200 l.append(page.text) format_html=HTML_FORMAT.format(title=title,body="\n".join(l)) writefile(title,format_html) if __name__ == "__main__": while True: main() 1 ricklei2777 2023-11-26 11:08:36 +08:00 着急的话看看这个 http://www.toolsba.top/ |
2 ricklei2777 2023-11-26 11:09:55 +08:00 @ricklei2777 但是这个预览机制貌似百度文库也是一样,感觉可以参考百度文库的下载方式?亦或者是高校图书馆权限,不过我所在高校没有权限,上某宝问问可能有效。 |
3 mrbendan8023 OP @ricklei2777 #1 看到啦,感谢老哥的回复,我去试试。 |
4 zuoheming 2023-11-26 19:49:03 +08:00 初中物理(人教版的话)还没开始上力学吧,初二目前上到凸透镜成像、初三上到电功率、化学上到碳这个单元 |
5 mrbendan8023 OP @zuoheming 对的啊,现在正在学习欧姆定律和电功率部分,试卷是随便找的。。。 |
6 zorchp1 2023-11-29 16:44:23 +08:00 可以试试百度文库高校版, |