Unjx. 2021-07-18 23:13 采纳率: 84.6%
浏览 168

Python爬虫如何批量保存图片?

img
这是我的报错截图,我能理解这个报错是什么意思,但并不知道怎么解决


#encoding='utf-8'
import requests
import re

from Tools.scripts.objgraph import ignore

url='https://mp.weixin.qq.com/s/1hdWEusrm0MJZexxC_OSaw'
head={"User-Agent": "Mozilla/5.0 "}

def get_text(response):
    # 优先使用 chardet 预测的 encoding, 其次使用 http header 提供的 encoding
    source_encoding = response.apparent_encoding or response.encoding
    if source_encoding is None:
        # 说明是二进制文件
        raise Exception
    elif source_encoding == 'GB2312':
        source_encoding = 'GBK'
    return response.content.decode(source_encoding, errors="ignore")

response=requests.get(url,headers=head)
html=get_text(response)
with open('E:/Python文件/爬虫/高一新教材/html.txt','w',encoding='utf-8') as f:
    f.write(html)

pattern = re.compile(r'<img class=".*?src="(.*?)"', flags=re.S)
image_url=pattern.findall(str(response.content.decode('utf-8')))
del image_url[0]
print(str(image_url))

with open('E:/Python文件/爬虫/高一新教材/image_url.txt','w',encoding='utf-8') as f:
    f.write(str(image_url))

for src in image_url:
#将图片转为二进制
    image_data=requests.get(url=src,headers=head).content#保存到本地

    with open('E:/Python文件/爬虫/高一新教材/新高一教材/{}.jpeg'.format(src[-105:]),'wb') as fp:
        fp.write(image_data)

这是我的代码,可能有比较多的问题,我说说我的逻辑思路:
1.向目标网址获取html
2.用正则表达式从html中找到需要的图片的url
3.将图片保存到本地
我的代码之间还插入了一些奇奇怪怪的代码,但影响不大
而我要提的问题是怎么将这些图片批量保存下来?

  • 写回答

3条回答 默认 最新

  • BXG_Man 2021-07-19 00:19
    关注

    最后两行我实在看不懂 但是我要给你提个醒 路径前面最好加个r 以防变量捣乱

    例:第31行

    with open(r'E:/Python文件/爬虫/高一新教材/image_url.txt','w',encoding='utf-8') as f:

    结束记得close

    评论

报告相同问题?

问题事件

  • 创建了问题 7月18日

悬赏问题

  • ¥15 网友们我该怎么办啊,急
  • ¥15 混合键合键合机对准标识
  • ¥100 现在不懂的是如何将当前的相机中的照片,作为纹理贴图,映射到扫描出的模型上
  • ¥15 目标跟踪,计算机视觉
  • ¥15 魔霸ROG7 pro,win11.息屏后会显示黑屏,如图,如何解决?(关键词-重新启动)
  • ¥15 有没有人知道这是哪里出了问题啊?要怎么改呀?
  • ¥200 C++表格文件处理-悬赏
  • ¥15 Windows Server2016本地登录失败
  • ¥15 复合卡卡号轨道写入芯片卡
  • ¥20 基于MATLAB的TDOA