复制
收藏
提问
简洁

import requests url = 'https://mp.weixin.qq.com/s?__biz=MzUxNzk1ODQyMQ==&mid=2247525204&idx=1&sn=fbadab501a494ed00696a04e5b25af16&chksm=f9921d2ecee594387f84ae06139a69d693cb450ddb9815190848a890c7cdb21e6952bd3ac075&scene=27' # 替换为你想访问的网站 res = requests.get(url) import lxml.html import os connect = lxml.html.fromstring(res.text) images = connect.xpath('//div[@id="js_content"]/section/section/img[@class="rich_pages wxw-img"]/@src') # 保存图片到桌面 desktop_path = os.path.join(os.path.expanduser(r"C:\Users\Administrator\Desktop"), "images") os.makedirs(desktop_path, exist_ok=True) for i, image_url in enumerate(images): # 获取图片内容 response = requests.get(images) image_content = response.content # 保存图片到桌面 image_path = os.path.join(desktop_path, f"image_{i}.jpg") with open(image_path, 'wb') as file: file.write(image_content)查错

4月前
全网
文档
学术
百科
知识库
时间不限
自动
回答简洁模式
深入研究一些

在您提供的代码中,有几个问题需要修正:

  1. 在获取图片内容时,您应该使用image_url而不是imagesimages是一个包含所有图片URL的列表,而image_url是当前正在处理的图片的URL。因此,应该将requests.get(images)改为requests.get(image_url)10

  2. 在保存图片时,您需要确保image_url指向的是一个有效的图片URL。在微信公众号中,图片URL可能不包含文件扩展名,因此您需要解析URL以获取图片的格式。这可以通过使用parse.parse_qs(parse.urlparse(file_path).query)来实现,其中file_path是图片的原始URL。9

  3. 您需要确保desktop_path目录存在,否则在尝试保存文件时会出现错误。您已经使用了os.makedirs(desktop_path, exist_ok=True)来创建目录,这是正确的。

  4. 您需要确保文件名是唯一的,以避免覆盖已存在的文件。您已经使用了f"image_{i}.jpg"来为每个图片生成唯一的文件名,这是正确的。

修正后的代码片段应该如下所示:

import requests
import lxml.html
import os
from urllib.parse import urlparse, parse_qs

# 替换为你想访问的网站
url = 'https://mp.weixin.qq.com/s?__biz=MzUxNzk1ODQyMQ==&mid=2247525204&idx=1&sn=fbadab501a494ed00696a04e5b25af16&chksm=f9921d2ecee594387f84ae06139a69d693cb450ddb9815190848a890c7cdb21e6952bd3ac075&scene=27'
res = requests.get(url)
connect = lxml.html.fromstring(res.text)
images = connect.xpath('//div[@id="js_content"]/section/section/img[@class="rich_pages wxw-img"]/@src')

# 保存图片到桌面
desktop_path = os.path.join(os.path.expanduser(r"C:\Users\Administrator\Desktop"), "images")
os.makedirs(desktop_path, exist_ok=True)

for i, image_url in enumerate(images):
    # 解析图片URL以获取图片格式
    file_path = image_url
    params = parse_qs(urlparse(file_path).query)
    ext = params['wx_fmt'][0] if 'wx_fmt' in params else 'jpg'  # 默认扩展名为jpg

    # 获取图片内容
    response = requests.get(image_url)
    image_content = response.content

    # 保存图片到桌面
    image_path = os.path.join(desktop_path, f"image_{i}.{ext}")
    with open(image_path, 'wb') as file:
        file.write(image_content)

请注意,这段代码假设所有图片URL都包含wx_fmt参数,如果没有,将默认使用jpg作为文件扩展名。您可能需要根据实际情况调整代码以确保正确处理图片格式。10

你觉得结果怎么样?
requests库如何发送GET请求?
lxml库如何解析HTML?
如何使用xpath定位网页元素?
Python中如何保存图片到本地?
os库如何创建文件夹?
如何使用enumerate遍历列表?

以上内容由AI搜集生成,仅供参考

在线客服