python抓取接口,保持图片
import urllib.request import json import os #导入os模块 import requests #导入requests 模块 class BeautifulPicture(): def __init__(self): #类的初始化操作 self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36'} #给请求指定一个请求头来模拟chrome浏览器 self.folder_path = 'D:\demo\BeautifulPicture' #设置图片要存放的文件目录 #利用urllib2获取网络数据 def registerUrl(self): print('开始创建文件夹') self.mkdir(self.folder_path) #创建文件夹 print('开始切换文件夹') os.chdir(self.folder_path) #切换路径至上面创建的 try:
# 请求的接口 url ="https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=0%2C0&fp=detail&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=0&lpn=0&st=undefined&word=%E6%A0%A1%E8%8A%B1&z=0&ic=undefined&s=undefined&se=&tab=0&width=undefined&height=undefined&face=undefined&istype=0&qc=&nc=&fr=&simics=&srctype=&bdtype=0&rpstart=0&rpnum=0&cs=3447792407%2C2312708615&catename=&cardserver=&tabname=&pn=0&rn=30&gsm=0&1535795026719=" data = urllib.request.urlopen(url).read() return data except Exception as e: print(e) #写入文件 def save_img(self, url, name): ##保存图片 print(url) img = self.request(url) file_name = name + '.jpg' print('开始保存图片') with open(file_name, 'ab') as f: f.write(img.content) # print(file_name,'图片保存成功!') #解析从网络上获取的JSON数据 def praserJsonFile(self, jsonData): value = json.loads(jsonData) data = value['data'] print(data) for i in data: url = i['middleURL'] name = i['fromPageTitleEnc'] self.save_img(url, name) def request(self, url): #返回网页的response r = requests.get(url, headers=self.headers) # 像目标url地址发送get请求,返回一个response对象。有没有headers参数都可以。 return r def mkdir(self, path): ##这个函数创建文件夹 path = path.strip() isExists = os.path.exists(path) if not isExists: print('创建名字叫做', path, '的文件夹') os.makedirs(path) print('创建成功!') else: print(path, '文件夹已经存在了,不再创建') if __name__ == "__main__": beauty = BeautifulPicture() #创建类的实例 data = beauty.registerUrl() # jsonFile(data) beauty.praserJsonFile(data)