代码 import requests from urllib.parse import urlencode import os,time from urllib.request import urlretrieve #请求: def get_page(offset): params = { "offset":offset, 'format':'json', 'keyword':'街拍', 'autoload':'true', 'count':'20', 'cur_tab':'1', } url = 'https://www.toutiao.com/search_content/?'+urlencode(params) try: res = requests.get(url) if res.status_code == 200: return res.json() else: return None except requests.ConnectionError: return None #解析 def get_images(json): if json.get('data'): for item in json.get("data"): print(item) title = item.get('title') image_list = item.get('image_list',[])特别是注意这里,如果没有数据,就需要要后门加上[] print(image_list) for image in image_list: yield{ "image":image.get('url'), 'title':title, } #保存图片 def saveTmage(item): path = os.path.join("./mypic",item.get('title')) if not os.path.exists(path): os.mkdir(path) local_image_url = item.get("image") image_url = 'http:'+ local_image_url.replace('list','large') save_pic = path +"/"+local_image_url.split("/").pop()+'.jpg' urlretrieve(image_url,save_pic) #主函数 def main(offset): json = get_page(offset) for item in get_images(json): print(item) saveTmage(item) #调用主函数 if __name__ == '__main__': for i in range(5): main(offset=i*20) time.sleep(1)