18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > 七牛云服务测试域名回收以前博客里面的相关图片怎么办?

七牛云服务测试域名回收以前博客里面的相关图片怎么办?

时间:2023-02-28 13:24:01 | 来源:建站知识

时间:2023-02-28 13:24:01 来源:建站知识

七牛云服务测试域名回收以前博客里面的相关图片怎么办?:前两天收到一份邮件,七牛云发来的,说是要回收我的测试域名,之前也不知道有测试域名这一说,可能怕有人干坏事吧。总之也就是说,我之前上传在七牛云上的博客图片可能都要挂掉了。想想自己博客的文章图片都 404 就悲催。





有两个解决方法:




1.在七牛云上提交自己的域名,不过需要备案
2.把自己上传在七牛云上的图片爬取下来,转移阵地
对于第一种方式是最简单的,换自己的域名就可以了,但是得备案,最烦就是备案了,一堆恶心的认证操作,而且总感觉背后有人在盯着你 - -

所以果断选择第二种解决方式,使用 Python 把图片爬取下来,转移阵地。

分析七牛云存储空间

通过这个存储的链接中 https://portal.qiniu.com/bucket/blog/resource 抓包可以看到,这个URL https://portal.qiniu.com/api/kodo/bucket/files?bucket=blog&delimiter=&limit=50&marker= 会返回存储数据,也就是图片地址和名称,正是我想爬取的东东。

一次请求可以获取到 50 条数据,那么想要获取全部怎么办呢?

简单分析一下,每次返回的 Json 字段中有 marker=eyJjIjowLCJrIjoiMi5wbmcifQ== ,当点击加载更多的时候,这个marker字段的值会作为下一次请求的 marker 参数值(携带在URL上),直到请求到最后 marker 为 “” ,也就是说当 marker 值为 “” 的时候,就是请求到最后的数据了。没有更多了。

大概了解了之后,就废话不多说了,开抓…

开始抓取七牛云图片

定义属性 header 和 urls,假装自己是浏览器和有cookie信息。

header = { "User - Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36", "Accept": "* / *", "authority": "portal.qiniu.com", "Accept - Encoding": "gzip, deflate", "cookie": "PORTAL_VERSION=v4; _ga=GA1.2.2072818546.1540316980; SSID=VkI4TTMzWE1GUlgzUVRENTZVNTNGQlVQQkVDREZISUpaSDlOWiwxNTQwOTc3OTMzMzk4NDY1MTg3LDViYWVkODRhMWNjZDcyZTJiY2IxMDY2YTlhYWJkOWE2OTliODRkN2EyOGQ2YTUxNWZkYjA5YzZmMTFjZGViMzAyM2JhOGU4NzcyYzU3YTI1ZDIxOWIxMDA4M2UzNGNhNTI3MDhlMmRmOGYxZDdkMDY5YzhkMzU1MzZiM2JlMzUy; PORTAL_UID=1381258456; _gid=GA1.2.1455782183.1540980965; gr_user_id=0dac03ae-d047-4009-8c28-af324447f4b1; qiniu_seo_refer=https://mail.qq.com/; Hm_lvt_204fcf6777f8efa834fe7c45a2336bf1=1540977888,1540980965,1540981082,1540996618; LXB_REFER=mail.qq.com; PORTAL_SESSION=OENCMTBURFVNMjEzV1VaRUdIRk4wTVJFODlMV0QxOEUsMTU0MDk5NjY0NjQwNjIzMzQzMiw5OWFhN2IxNDgwNzhjNDQ5MjRkYTU2ODk1ZDQ4ODQ4ODkxZTQ4Mjgw; _gat=1; __lfcc=1; Hm_lpvt_204fcf6777f8efa834fe7c45a2336bf1=1541004539" } urls = "https://portal.qiniu.com/api/kodo/bucket/files?bucket=blog&delimiter=&limit=50&marker="因为第一次请求不需要 marker ,所以我们可以给 marker 定义一个默认值,每次请求就更新这个marker,当发现 marker 为空的时候就不再请求了。

请求到的数据只需要图片名称和图片地址就行了,可以用到 json 模块来解析 json 数据,然后将图片下载到blog文件夹:

marker = "&" os.mkdir("blog") os.chdir("blog") sum = 0; while str(marker).strip()!= '': url = urls + marker res = request_qiniu(url, header) jsondata = json.loads(res.text) marker = jsondata['data']['marker'] for i in range(0,len(jsondata['data']['entries'])): fileurl = jsondata['data']['entries'][i]['dl_remove_attname_url'] filename = jsondata['data']['entries'][i]['key'] with open(filename, 'wb') as f: img = url_open(fileurl).content f.write(img) sum += 1 print("写入数据,第"+str(sum)+"条:" + filename)这是请求七牛云数据的方法,用到了 requests 模块:

def request_qiniu(url,header): try: response = requests.get(url,headers=header) if response.status_code == 200: return response return None except RequestException: return None运行代码开始爬取图片:

可以看到,创建了文件夹,并且把图片都下载下来了:

ok,搞定!




微信搜索学习Python的正确姿势加入:一个 Pythonner 的聚集地!




ps:还没获取我精心准备的 Python 电子书和思维导图等干货的可以在我的公众号「学习Python的正确姿势」中发送 python 免费获取哦!




Python最新全套视频教程百度网盘资源

关键词:相关,图片,服务,测试,回收

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭