参考链接

  • 隐藏图床之利用贴吧做图床-PHP版

  • 图床 - 百度百科

  • 什么是『图床』

  • 你们都用什么图床啊?

  • 使用Python requests post上传图片

贴吧图床 - 小记

目录

1. 这个链接是啥
2. 什么是图床
3. 利用贴吧做图床
4. 编程实现
5. 心得体会

一、这个链接是啥 ↶

之前逛B站的时候,看到有人在评论区放图,结果是一个链接,点进去就是一张动态图。
???B站评论区可以发图的么。。。什么鬼
后来,在查找资料的过程中,发现原来这是百度贴吧里的图,因为图片上传至贴吧后,图片保存下来,可以把链接复制到别的地方。
emm… 在某种意义上来说,这个好像挺有用的和挺方便的。
【忘了留链接和截图,不过也不要紧不影响后续的内容。。。】

二、什么是图床 ↶

图床 - 【百度百科】

图床一般是指储存图片的服务器,有国内和国外之分。国外的图床由于有空间距离等因素决定访问速度很慢影响图片显示速度。国内也分为单线空间、多线空间和cdn加速三种。

大概的意思就是,图床就是用来存放图片的空间,同时允许外链到其他网站。有的时候自己的服务器负担比较重,利用其它服务器当做图床,缓解自己服务器的压力,等等。
就比如:
写 MarkDown 文章可以引用别的地方的图片,
【我也不是很懂,随便写几句】

三、利用贴吧做图床 ↶

之前逛的时候,偶然间看到一篇用贴吧做图床的文章,也想动手分析和实现一下这个过程。
整体思路还是很简单【还是有难度的】,大概就是:利用贴吧的图片上传功能,将图片上传至贴吧的服务器,然后图片就在贴吧上了,就会随之产生一个链接,那个链接就是我们需要的
【我比较喜欢多写写分析过程,善于思考还是很重要的】

  1. 初始的分析
    第一步,就难道我一下了。我根本不知道上传的链接在哪里,这可怎么整啊。贴吧相册?贴吧有相册么,好歹我用贴吧这么多年,我咋完全不知道这玩意呢。在做出尽可能的挣扎之后,只好放弃这个思路。em… 贴子里面好像经常发图,做图床的可能性也大,所以抱着试一试的心态,尝试抓上传图片的接口。

  2. 接口抓包
    在点击本地上传之前,记得打开 Fiddler 进行抓包,看看接口链接是啥。

    抓包结果如下所示:

    提取出链接:
    https://uploadphotos.baidu.com/upload/pic?tbs=a03b8e590a9e94d6015762263880125500_1&fid=398061&save_yun_album=1
    对比:

    看来我们的猜想没有问题,这里就可以上传图片,得到我们需要的外链。【这张截图来自参考链接一里的代码】

  3. 图片上传
    基本上,原理方面就是这样【也不知道该说啥,没啥可写,就少写点吧】。接下来的话,我想通过编写程序的方式,模拟提交图片文件,实现贴吧上的图片上传过程,最后拿到需要的链接。

四、编程实现 ↶

基于 Python3 编写的代码,代码原理我就不讲了。

import requestsclass BaiduTuChuang(object):def __init__(self, cookies):# 上传用的链接self.upload_url = 'http://uploadphotos.baidu.com/upload/pic?tbs=dc00688a479d8002015649947380125500_1&fid=4208767&save_yun_album=1'# 拼接用的链接self.imgBase_url = 'https://imgsa.baidu.com/forum/pic/item/'# 头部self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:34.0) Gecko/20100101 Firefox/34.0','Host': 'uploadphotos.baidu.com','Cookie': cookies}def process(self, path):# 文件地址处理,以便提取文件名和后缀名temp = path.split('\\')[-1]filename, suffix = temp.split('.')print('filenam: {0} \ntype: {1}'.format(filename, suffix))return filename, suffixdef upload(self, path):# 上传主程序filename, suffix = self.process(path)files = {'file': (filename, open(path, 'rb'), 'image/{}'.format(suffix))}response = requests.post(self.upload_url, headers=self.headers, files=files)data_json = response.json()# 可能会报错try:pic_id_encode = data_json['info']['pic_id_encode']print('IMG:\n{0}{1}{2}'.format(self.imgBase_url, pic_id_encode, '.jpg'))except Exception as error:print(data_json)if __name__ == '__main__':# 填入自己的 cookie#【可能要抓包的,抓提交图片时那个链接的cookie值才有用】cookies = ''# 路径,如 C:\Users\hp\Desktop\test2.gifpath = r''tuChuang = BaiduTuChuang(cookies)tuChuang.upload(path)

五、心得体会 ↶

还是遇到一些问题的,模拟提交的时候,竟然把参数 Cookie 写成复数 Cookies,导致一直出错,难受死了。还有代码可能有问题,就先这样吧。好事情是,用 requests 模块提交文件总算能够成功了,这是一次不错的收获。当然写这篇博文的主要目的不是做图床,而是明白这个链接到底从哪来和有什么用,下次在看到这个链接就会知道原来是这么回事情。好久没有写代码了,写一写熟练一下自己的技术。
路曼曼其修远兮,路还很长,继续加油吧! ヾ(◍°∇°◍)ノ゙

点我回顶部 ☚

Fin.

https://imgsa.baidu.com/forum/pic/item/...【贴吧图床】相关推荐

  1. 七牛云图床开启HTTPS域名的两种方式

    我的原文:https://hijerry.cn/p/64756.html https下的http图片 因为自己一直用的是七牛云来管理博客图片,发现在chrome下用https访问博客时看不到博客里的图 ...

  2. 什么是ods(转载)https://baike.baidu.com/item/ODS/15146368?fr=aladdin

    原文位置:https://baike.baidu.com/item/ODS/15146368?fr=aladdin ODS (操作数据存储) 编辑 讨论 操作数据存储ODS(Operational D ...

  3. http://hi.baidu.com/grayworm/blog/item/c76c4046307d380a6a63e56a.html

    http://hi.baidu.com/grayworm/blog/item/c76c4046307d380a6a63e56a.html

  4. https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html

    https://wenku.baidu.com/view/1f9138e903d8ce2f01662306.html

  5. https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html--swot

    https://wenku.baidu.com/view/35c88b375acfa1c7aa00ccca.html 转载于:https://www.cnblogs.com/anruy/p/97519 ...

  6. https://wenku.baidu.com/view/24def725e53a580217fcf

    https://wenku.baidu.com/view/24def725e53a580217fcfe6d.html 转载于:https://blog.51cto.com/11067786/23404 ...

  7. 链接:https://pan.baidu.com/s/1joRvLQ7nbti0Wp4t2CkX5w 提取码:ZMTD

    链接:https://pan.baidu.com/s/1joRvLQ7nbti0Wp4t2CkX5w 提取码:ZMTD

  8. javax.servlet.Filter详解(二) 转自:http://hi.baidu.com/jxnuywf/blog/item/f3834aee93e2fdf8b2fb95cc.html

    转自:http://hi.baidu.com/jxnuywf/blog/item/f3834aee93e2fdf8b2fb95cc.html 1.5禁用激活器servlet 在对资源应用过滤器时,可通 ...

  9. 有一个网页地址, 比如百度主页: https://www.baidu.com/ 如何得到它的内容?

    我使用php文件类函数fopen操作的 其他详细请参考php中文手册https://www.php.net/manual/zh/function.fopen.php fopen的filename也就是 ...

最新文章

  1. centos7.4.3 部署python-pcl亲测可用(采坑记)
  2. 全球物联网产业规模不断扩大 中国市场前景分析
  3. 路由器与计算机IP配置,路由器设置之前 如何给电脑设置IP地址
  4. js将字符串中所有反斜杠\替换成正斜杠/
  5. poj3296--Rinse(三分)
  6. lasso回归和岭回归_如何计划新产品和服务机会的回归
  7. 【JavaScript】appendChild一个的注意点之会删除原dom树节点
  8. 石头剪刀布程序流程图_“剪刀,石头,布”心理学
  9. Python高级——Web静态服务器(面向对象)
  10. bzoj1601 灌水
  11. 对应猎豹网校的lua 视频教程 做的学习记录 前三课简单介绍1-3
  12. 华为2288H V5服务器安装win_server_2016问题解决过程
  13. 基本MVC2模式创建新闻网站
  14. 计算机硬盘发展现状,固态硬盘的发展现状
  15. PHP解决IE浏览器下载文件名乱码问题
  16. 易基因|ChIP-seq分析方法:实用的工作流程和高级应用
  17. 带电插拔损坏设备原理_那些设备可以热插拔?
  18. luogu P5149 会议座位
  19. ctfshow sql注入 web171-web253 wp
  20. 中国偶氮二异丁腈市场供需动态与投资前景展望报告(新版)2022-2027年

热门文章

  1. Linux系统 ELK(8.3.1)单机环境搭建
  2. python3爬虫系列21之selenium自动化登录163邮箱并读取未读邮件内容
  3. 学术-物理-维空间:一维空间
  4. 北航计算机复试英语,考研并不困难:北航计算机考研之路
  5. 双开助手多开分身版 v5.1.8
  6. p95、p99、p999 什么意思
  7. 和过去的自己写的告别信
  8. windows10开启/关闭超级管理员账号登陆
  9. 学习嵌入式Linux,做底层还是应用?底层要掌握哪些技能?
  10. 呼叫中心坐席功能在职场中的应用