图床上传工具下载资源顺便为带演示一下,Freebuf的评论比较开发,可以匿名直接上传图片,并返回外链信息。图床上传工具下载可以来西西软件园来下载使用,不过具体还是请看下方的教程吧。
下面来演示一下:
首先随便打开一篇文章:
http://www.freebuf.com/articles/network/166702.html 就这篇了,这篇文章是我有史以来被喷的最多的一篇,特此记录之,以激励自己不断学习进步。
然后鼠标滚动到最下面的评论框,点击插图, 然后选择一张图片上传,评论框会自动返回图片的外链地址。
相关功能实现
Emmmm,由于是第一次写自己的Python小工具,所以代码看上去比较臃肿,一些Python的高级特性也没有用上,然后有能力了再来修改。
上传图片
使用了requests模块,其中post的地址是FreeBuf的公共上传点。
1 2 3 4 5 6 7 8 | def upload(file_name): url = 'http://www.freebuf.com//buf/plugins/ueditor/ueditor/php/imageUp.php&post_id=' headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'} cookies ={ '3cb185a485c81b23211eb80b75a406fd':'1524312580', 'PHPSESSID':'lrps8el9u799le2agl56hhqlf0'} r = requests.post(url,headers=headers,cookies=cookies, files={'upfile' : open(file_name, 'rb')},) |
一个最基本的 HTTP 上传请求,上传的文件名是file_name,然后当作参数传递给upload函数。
从剪贴板保存图片
1 2 | def save_image(): os.system('xclip -selection clipboard -t image/png -o > /tmp/sqlsec.png') |
这里利用的是Linux下的xclip工具来操作剪贴板,然后将图片保存到/tmp路径下,放到这个临时目录的好处是:计算机下一次重启的时候会清除这个目录,这样减少了垃圾的产生。
os.system("cat /etc/passwd")是Python下直接调用shell命令的一个规范。
提取图片外链
由于服务器直接返回的地址如下:
所以得进行简单的字符串提取,然后在拼接下。前期看这个返回结果 像是json格式,然后网上查了写Python的json数据提取,emmm 居然失败了,下次有机会再研究下。用正则把,也可以,但是苦逼的自己正则水平很菜,于是最后直接 僵硬地用了字符串截取来提出 关键数据:
1 | url = '%s%s'%('http://image.3001.net/',str(r.text[8:42])) |
这里的str(r.text[8:42])),直接截图字符串的9-43位,然后插入到http://image.3001.net/的后面,组成一个完整的图片外链。
将 markdown 格式的外链拷贝到剪贴板
由于使用的是xclip第三方工具来操作剪贴板 ,所以直接拷贝到剪贴板有点僵硬,我是这么操作的。