【求助】洗版遇到问题,中文编码

洗版遇到问题

网页中图片地址是这样:
http://123.206.224.64/高清a/商/商a殷墟甲骨文a大篆a殷墟甲骨文a1213_1861.jpg"
批量下载到电脑上,就变成了这样:
本地硬盘是这样的:…\123.206.224.64\_25B8_25DF_25C7_25E5a\_25BA_25BA

请问,这是什么原因?
_25B8_25DF_25C7_25E5a是什么编码?
怎样替换回原汉字?数字与英文地址没变,就是汉字变了。汉字文件名全变成了数字和英文。

QQ图片20210619100742

更新:似乎是 下载工具自动把汉字转成了 GB2312简体中文编码。

下载工具的问题,还原很困难,建议换个工具。

_改成百分号,url编码,Windows文件名不能用百分号所以一般会改成下划线

2 Likes

是的。现在要还原回去。

不是 URL encode 的

GB2312简体中文编码
https://tool.chinaz.com/tools/urlencode.aspx
可以转回去,比较麻烦

我靠我没想到是 gb2312的…

恢复文件名还是遇到许多问题,准备重新下载图片。已经有图片地址列表如:
http://119.29.99.55/高清a/元/元a赵孟俯a行书a嵇叔夜山巨源绝交书a803_356.jpg
http://119.29.99.55/高清a/元/元a赵孟俯a行书a秋兴赋a78_103.jpg
http://119.29.99.55/高清a/南北朝/1/南北朝a魏碑a魏碑a魏碑a247_8925.jpg
http://119.29.99.55/高清a/南北朝/1/南北朝a魏碑a魏碑a魏碑a6488_381.jpg
http://119.29.99.55/高清a/南北朝/南北朝a魏碑a魏碑a魏碑a247_8925.jpg
http://119.29.99.55/高清a/南北朝/南北朝a魏碑a魏碑a魏碑a6488_381.jpg
http://119.29.99.55/高清a/唐/1/唐a国诠a楷书a善见律a276_1213.jpg
http://119.29.99.55/高清a/唐/1/唐a杜牧a行书a张好好诗a156_942.jpg
等等。
请问怎样批量下载到相应的文件夹,并保持原图片中文名,不乱码。感谢!有没有其他工具,或PYthon代码,我可以跑
119.29.99.55/高清a/唐/1/ 自动创建子文件夹存放目录。
图片很多,80多万。。。

Thunder下载都可以保持原来编码,它是全部放在一个文件夹里。没有自动创建子文件夹。

不行的话,还用python

import requests,re,os
with open(r'd:\图片地址列表.txt','r') as f:
    urll=f.read()
urll=urll.split('\n')
for url in urll:
    s=re.match(r'^http://[^/]+(.+)$',url).group(1)
    s=s.replace('/','\\')
    res=requests.get(url)
    img=res.content
    imgname=f'd:\\shufatu{s}'
    os.makedirs(os.path.dirname(imgname), exist_ok=True)
    with open(imgname,"ab") as f:
        f.write(img)
        
print("end")
1 Like

还是不会用,可讲详细些吗

谢谢,试试看。。

Traceback (most recent call last):
  File "F:\Program Files\JetBrains\PyCharm Community Edition 2021.1.2\jbr\bin\F\PY\PycharmProjects\pythonProject\TU1.py", line 4, in <module>
    urll = f.read()
UnicodeDecodeError: 'gbk' codec can't decode byte 0x8a in position 10325: illegal multibyte sequence

这样子,出错?

试了下,少量,几百个可以。上千个地址就不行了。

你把图片地址列表文件编码改为utf-8
然后再把with open(r’d:\图片地址列表.txt’,‘r’) as f:改为
with open(r’d:\图片地址列表.txt’,‘r’,encoding=“utf-8”) as f:
试试

虚拟机,玩不来。win10也可以用吧。我再摸索下

代碼複製到這裡標點自動變了,還得改回去。
用您的代碼撫掛上了,目前運行得還好。5萬個地址沒報錯。

1 Like

用您的代码成功下载了图片 :+1: :+1: :+1:。速度还可以。python果然强大

那就好,期待大作

Traceback (most recent call last):
  File "F:\Program Files\JetBrains\PyCharm Community Edition 2021.1.2\jbr\bin\F\PY\PycharmProjects\pythonProject\TU8.py", line 8, in <module>
    s = re.match(r'^http://[^/]+(.+)$', url).group(1)
AttributeError: 'NoneType' object has no attribute 'group'

进程已结束,退出代码为 1

圖片 成功下載。只是下載完後PY顯示這個,不是end.