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

我靠我没想到是 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 个赞

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

1 个赞

谢谢,试试看。。

1 个赞
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萬個地址沒報錯。

2 个赞

用您的代码成功下载了图片 :+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.

那就是完了,是我写得不周密,下载完了,先触发异常,所以不会end

1 个赞

阿弥陀佛及诸兄辛苦哈,非常期待。

PY抓取图片,后来发现有些漏掉的,怎样让它重新检查下载的文件,补下载缺失的图片?

应该说没有出错就不该有遗漏。看一下漏的图片有什么规律没有?会不会图片地址收集时就漏了?

图片地址收集没有漏。漏的不多。把地址放在浏览器是有图片的。用其他工具能下载到。少部分py没抓到