复制
收藏
提问
简洁
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月前
全网
文档
学术
百科
知识库
回答简洁模式
深入研究一些
在您提供的代码中,有几个问题需要修正:
-
在获取图片内容时,您应该使用
image_url
而不是images
。images
是一个包含所有图片URL的列表,而image_url
是当前正在处理的图片的URL。因此,应该将requests.get(images)
改为requests.get(image_url)
。10 -
在保存图片时,您需要确保
image_url
指向的是一个有效的图片URL。在微信公众号中,图片URL可能不包含文件扩展名,因此您需要解析URL以获取图片的格式。这可以通过使用parse.parse_qs(parse.urlparse(file_path).query)
来实现,其中file_path
是图片的原始URL。9 -
您需要确保
desktop_path
目录存在,否则在尝试保存文件时会出现错误。您已经使用了os.makedirs(desktop_path, exist_ok=True)
来创建目录,这是正确的。 -
您需要确保文件名是唯一的,以避免覆盖已存在的文件。您已经使用了
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
你觉得结果怎么样?