书链电脑下载?【爬虫项目】书链平台试卷下载 –破解Js加密

今天给各位分享书链电脑下载的知识,其中也会对【爬虫项目】书链平台试卷下载 –破解Js加密进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

博主在假期遇到有家长,拿着老师的布置的作业来打印,结果是如下这样的电子书,还不能下载,所以打算编写爬虫进行下载,发现有书籍的链接全都通过Js加密了,这不能忍,这么能阻止小学生做作业呢。

网站:https://mp.zhizhuma.com/book/shelf.htm?id=4872

所用模块:

获取数据每一页的链接的Json\ndefget_encryptedData(ebookId):\npass\n\n下载保存连接\ndefdownload_and_save(datadict,differenceDate):\n\nif__name__==&39;:\n39;https://mp.zhizhuma.com/book/sample2.htm?id=52753&shelfId=4872&39;id=(\\d+)&获取书籍的URL\nencryptedData=get_encryptedData(ebookId)\n39;timestamp&创建文件夹\nmakedirs(str(differenceDate))\nfordatainencryptedData.get(&39;):\n下载书籍\ndownload_and_save(pageNo_url,differenceDate=differenceDate)

get_encryptedData()

通过Js分析,发现这段Js的解密,我们使用Python来实现,逻辑并不复杂。

defget_encryptedData(ebookId):\nurl=&39;\ndata={\n&34;:ebookId,\n&34;:&34;,\n&34;:&34;,\n&34;:&34;,\n}\nj=requests.post(url=url,data=data).json().get(&39;)\n\n34;Suj4XDDt3jPsH9Jj&39;utf8&39;\\x0f&34;utf-8&获取真正的连接,有时效\ndefget_auth_key(data,differenceDate):\n39;pageNo&解密构造参数\nimgurl=data.get(&39;).split(&39;)[1]\nuid=&34;\nrand=str(random.random())\ntimestamp=str(int(time.time())-int((int(time.time()*1000)-differenceDate)/1000)+15)\nsstring=imgurl+&34;+timestamp+&34;+rand+&34;+uid+&34;\nmd5=hashlib.md5()\nmd5.update(sstring.encode())\nmd5hash=md5.hexdigest()\nauthKey=&39;+timestamp+&34;+rand+&34;+uid+&34;+md5hash\nurl=&34;+imgurl+&34;+authKey\nreturn{&34;:pageNo,&34;:url}

download_and_save()

39;url&34;/&39;pageNo&34;.png&34;wb”)asfile:\nfile.write(c)

好了,关于书链电脑下载和【爬虫项目】书链平台试卷下载 –破解Js加密的问题到这里结束啦,希望可以解决您的问题哈!

Published by

风君子

独自遨游何稽首 揭天掀地慰生平