Tinypng图片压缩非API

2022-12-24 11:00:18 浏览数 (1)

代码语言:javascript复制
import requests
import json
import os


'''
上传文件进行压缩并获取返回压缩后的图片地址
'''
def get_down_url(file_path):
    url = 'https://tinypng.com/web/shrink'
    with open(file_path, 'rb') as rf:
        data = rf.read()
        headers = {'user-agent':
                       'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) '
                       'AppleWebKit/537.36 (KHTML, like Gecko) '
                       'Chrome/68.0.3440.106 Mobile Safari/537.36'}
        resp = requests.post(url, data=data, headers=headers)
        print(json.loads(resp.text).get('error'))
        resp_json = json.loads(resp.text)
        (filepath, tempfilename) = os.path.split(file_path)
        (filename, extension) = os.path.splitext(tempfilename)
        yield resp_json.get('output')['url'] '/' filename extension


'''
下载指定地址图片到本地
'''
def down_img(url):
    (filepath, tempfilename) = os.path.split(url)
    (filename, extension) = os.path.splitext(tempfilename)
    print('start down : '   filename   extension   ' ...')
    resp = requests.get(url)
    with open('to/' filename extension, 'wb') as wf:
        print('start save : '   filename   extension   ' ...')
        wf.write(resp.content)
        print('save ok : '   filename extension)


def start_task():
    paths = os.listdir('./from')
    print('start task')
    for item in paths:
        print('from : '   item)
        urls = get_down_url('from/'   item)
        for url in urls:
            down_img(url)


if __name__ == '__main__':
    start_task()

0 人点赞