import jsonpath
import requests
class Request(object):
"""请求的装饰器"""
def __init__(self,func):
self.func=func
def __call__(self, url,headers,flg=None):
resp = requests.get(url, headers=headers)
if flg ==None:
con = resp.json()
elif flg==False:
con=resp.text
else:
con = resp.content
return self.func(con,url)
@Request
def get_img_url(content,url=None):
"""获取图片的url"""
img_list = jsonpath.jsonpath(content,'$..path')
return img_list
@Request
def save_img(content,url=None):
"""保存图片"""
with open("./pic/"+url.split("/")[-1],'wb') as f:
f.write(content)
def run():
"""启动程序"""
ur = "https://www.duitang.com/napi/blog/list/by_search/?kw=%E7%BE%8E%E5%A5%B3&type=feed&start={}"
headers = {'User-Agent': "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50"}
for i in range(0,100,24):
url= ur.format(i)
img_list=get_img_url(url,headers=headers)
for img in img_list:
save_img(url=img,headers=headers,flg=True)
if __name__ == '__main__':
run()