平心而论如果想达到用网页 URL 作为输入使用 Python 直接下载页面对应的图集在这个站点上是相当困难的,其随机性比较出色的复杂化了对模式的识别。不过如果能够接受在浏览器中打开页面时可以自动导出页面的图集标题和图片链接的话,简单写了一段代码可供参考,此代码实现的是先前评论中给出的最后一个思路:
- // ==UserScript==
- // @name download helper -- mmzztt.com
- // @namespace 415c1050-02fc-4853-b14d-866818d37c84
- // @match https://mmzztt.com/photo/*
- // @grant none
- // @version 1.0
- // @author -
- // ==/UserScript==
- ;(()=>{
- const oldDecrypt = CryptoJS.AES.decrypt;
- CryptoJS.AES.decrypt = (...args) => {
- const result = oldDecrypt(...args);
- const base = document.querySelector('figure img').src.match(/(.+)\/.+/)[1];
- alert(JSON.stringify({
- title: document.getElementsByTagName('h1')[0].innerText,
- images: JSON.parse(result.toString(CryptoJS.enc.Utf8)).map((item) => (`${base}/${item}`)),
- }));
- return result;
- };
- })();
复制代码
将这段代码添加到浏览器插件 Violentmonkey 中,当打开图集(写真集)时将会弹出对话框给出包含当前页面图集的标题和图片链接数组的 JSON 字符串,可以将其复制到如 Python 中进行解析处理和下载。同时此脚本(应该)不会影响原有页面功能。
注意如果要使用脚本批量下载图片需要添加一个 HTTP header
- Referer: https://mmzztt.com
复制代码
同时适当调整 UA ,否则会被服务器拒绝响应(返回 403 )。
声明:此代码和猜测分析仅供学习交流使用,请用于合法用途,确认您获取数据的行为得到了数据所有者的明确同意。本人不对不当用途及造成的后果负责。
另:在本论坛中先前看到过一些帖子介绍有一个 Python 库可以模拟浏览器行为如点击等,可能也有一定参考价值。