python requests re json下载图片
re获取的内容为列表,列表---->字符串–>json—>提取对应信息 是否是最优?
import requests
import re
import json
url = "https://desk.zol.com.cn//bizhi/9109_111583_2.html"
resp = requests.get(url)
#1,提取详情页中的var deskPicArr 2,获取oriSize imgsrc 3,组合url 4,用url 下载
obj = re.compile(r"var deskPicArr.*?=(?P<deskPicArr>.*?);",re.S) #使用预加载正则表达式
result = obj.findall(resp.text) #提取出来的都为列表,列表,列表,列表;是否有不转换成json格式的简单方法呢?
result = str(result[0]) #总共就1个元素,将这个元素取出来,转换成str
result = json.loads(result) #将上面的str转换成json格式
for item in result["list"]: #迭代json格式的内容,查找对应内容
oriSize = item.get("oriSize") #提取对应内容中的oriSize的值
imgsrc = item.get("imgsrc") #提取对应的图片地址
imgsrc_url = imgsrc.replace("##SIZE##",oriSize) #图片地址中间需要部分转换
resp = requests.get(imgsrc_url)
img = resp.content #下载图片,使用content
imgname = imgsrc_url.split("/")[-1] #截取url地址的最后内容做为下载下来的文件名
with open(imgname,mode="wb") as f: #将文件下载后保存
f.write(img)