python re re.compile search groupdict 正则多取值
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.search(resp.text) #使用search提取出来的都为字符串,如果只取单个则可以用这个search,多个则可以用finditer,后面提取则可用groupdict
deskPic = result.group("deskPicArr") ##将匹配字段中的名称为deskPicArr名称的值取出,
deskPic = json.loads(deskPic) #将字符串转换成json格式
for i in deskPic["list"]:
oriSize = i.get("oriSize")
imgsrc = i.get("imgsrc")
imgsrc = imgsrc.replace("##SIZE##",oriSize)
filename = imgsrc.split("/")[-1]
imgdownload = requests.get(imgsrc) #下载对应链接的数据
with open(filename,mode="wb") as f:
f.write(imgdownload.content)