某度的首页存在一个 bug,「自定义换肤」上传的图片会留在云端不删除,并且图片直链不会鉴定 cookie 和 referer。
可以直接使用百度来做图床存储图片 (安全性未知) 但是速度快啊:sunglasses:
思路 需要事先在浏览器登录百度账号
简单构建一个网页 模拟用户提交图片
1 2 3 4 5 6 7 8 9 10 11 12 13 <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>图片上传</title></head><body> <form enctype="multipart/form-data" action="https://sp0.baidu.com/6_R1fD_bAAd3otqbppnN2DJv/Pic/upload?pid=super&app=skin&logid=2915142959" method="post"> <input type="file" name="file"><br/> <input type="submit" value="上传"> </form></body></html>
需要携带 BDUSS 和 BAIDUID cookie。
返回的图片 URL 就在 JSON 中的 data.pic_water 值中
返回图片的地址不可以直接使用需要替换网址信息,将返回的json信息中的data.pic_water值提取出来进行更改
图片头部信息为:https://imgsrc.baidu.com/forum/pic/item/
改动之后 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>百度图床上传</title> <style> #outputBox { width: 100%; padding: 10px; margin-top: 20px; border: 1px solid #ccc; background-color: #f0f0f0; box-sizing: border-box; cursor: text; overflow: auto; white-space: pre-wrap; /* 保持文本格式 */ } </style> </head> <body> <form id="uploadForm" enctype="multipart/form-data"> <input type="file" name="file" id="fileInput"><br/> <input type="submit" value="上传"> </form> <div id="result"> <p>处理后的文件名: (双击可复制)</p> <div id="outputBox"></div> <p>上传的图片:</p> <img id="uploadedImage" src="" alt="" style="max-width: 100%; margin-top: 10px;"> </div> <script> document.getElementById('uploadForm').addEventListener('submit', function(event) { event.preventDefault(); // 阻止表单默认提交 var formData = new FormData(); var fileInput = document.getElementById('fileInput'); formData.append('file', fileInput.files[0]); var xhr = new XMLHttpRequest(); xhr.open('POST', 'https://sp0.baidu.com/6_R1fD_bAAd3otqbppnN2DJv/Pic/upload?pid=super&app=skin&logid=2915142959', true); // 携带 cookies xhr.withCredentials = true; xhr.onload = function () { var data = JSON.parse(xhr.responseText); // 提取 pic_water 字段的内容 var picWater = data.data.pic_water; // 提取文件名 var fileName = picWater.split('/').pop(); // 添加特定内容 var prefix = "https://imgsrc.baidu.com/forum/pic/item/"; // 自定义的特定内容 var finalResult = prefix + fileName; outputBox.innerText = finalResult; // 显示图片 var uploadedImage = document.getElementById('uploadedImage'); uploadedImage.src =finalResult; }; xhr.onerror = function () { document.getElementById('result').innerHTML = ` <p>上传失败: ${xhr.statusText}</p> `; }; xhr.send(formData); }); // 实现双击复制功能 document.getElementById('outputBox').addEventListener('dblclick', function() { var range = document.createRange(); range.selectNodeContents(this); var selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); document.execCommand('copy'); // 显示复制提示 var message = document.createElement('div'); message.innerText = '内容已复制到剪贴板'; message.style.position = 'fixed'; message.style.bottom = '10px'; message.style.right = '10px'; message.style.padding = '10px'; message.style.backgroundColor = '#dff0d8'; message.style.color = '#3c763d'; message.style.border = '1px solid #d6e9c6'; message.style.borderRadius = '5px'; document.body.appendChild(message); setTimeout(function() { document.body.removeChild(message); }, 1000); // 2秒后隐藏消息 }); </script> </body> </html>
Typora 配合piclist使用 Typora配置 文件->偏好设置->图像->上传服务->自定义命令python pic.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 import sysimport requestsimport jsondef upload_image (image_path ): url = 'http://127.0.0.1:36677/upload' with open (image_path, 'rb' ) as file: files = {'file' : (image_path, file, 'image/jpeg' )} response = requests.post(url, files=files) responsetext = response.text responsejson = json.loads(responsetext) name = responsejson['result' ][0 ] name = str (name).split('/' )[-1 ] name = "https://imgsrc.baidu.com/forum/pic/item/" +str (name) print (name) if __name__ == "__main__" : image_paths = sys.argv[1 :] for image_path in image_paths: upload_image(image_path)
前提:piclist 配置自定义图床 设置 注:cookie易失效
参考链接白嫖某度CDN当博客图床