encode.py 2.6 KB
Newer Older
H
hjdhnx 已提交
1 2 3 4 5 6 7 8
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# File  : encode.py
# Author: DaShenHan&道长-----先苦后甜,任凭晚风拂柳颜------
# Date  : 2022/8/29

import base64
import requests
H
hjdhnx 已提交
9
from utils.web import UC_UA
H
hjdhnx 已提交
10 11 12 13 14 15 16

def base64Encode(text):
    return base64.b64encode(text.encode("utf8")).decode("utf-8") #base64编码

def baseDecode(text):
    return base64.b64decode(text).decode("utf-8") #base64解码

H
hjdhnx 已提交
17
def dealObj(obj):
H
hjdhnx 已提交
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
    encoding = obj.get('encoding') or 'utf-8'
    encoding = str(encoding).replace("'", "")
    # print(type(url),url)
    # headers = dict(obj.get('headers')) if obj.get('headers') else {}
    # headers = obj.get('headers').to_dict() if obj.get('headers') else {}
    headers = obj.get('headers') if obj.get('headers') else {}
    new_headers = {}
    # print(type(headers),headers)
    for i in headers:
        new_headers[str(i).replace("'", "")] = str(headers[i]).replace("'", "")
    # print(type(new_headers), new_headers)

    timeout = float(obj.get('timeout').to_int()) if obj.get('timeout') else None
    # print(type(timeout), timeout)
    body = obj.get('body') if obj.get('body') else {}
    new_body = {}
    for i in body:
        new_body[str(i).replace("'", "")] = str(body[i]).replace("'", "")
H
hjdhnx 已提交
36 37 38 39 40 41 42 43 44 45 46 47
    return {
        'encoding':encoding,
        'headers':new_headers,
        'timeout':timeout,
        'body': new_body,
    }

def base_request(url,obj,method=None):
    url = str(url).replace("'", "")
    if not method:
        method = 'get'
    # print(obj)
H
hjdhnx 已提交
48 49 50
    try:
        # r = requests.get(url, headers=headers, params=body, timeout=timeout)
        if method.lower() == 'get':
H
hjdhnx 已提交
51
            r = requests.get(url, headers=obj['headers'], params=obj['body'], timeout=obj['timeout'])
H
hjdhnx 已提交
52
        else:
H
hjdhnx 已提交
53
            r = requests.post(url, headers=obj['headers'], data=obj['body'], timeout=obj['timeout'])
H
hjdhnx 已提交
54 55 56
        # r = requests.get(url, timeout=timeout)
        # r = requests.get(url)
        # print(encoding)
H
hjdhnx 已提交
57
        r.encoding = obj['encoding']
H
hjdhnx 已提交
58 59 60 61 62 63
        # print(f'源码:{r.text}')
        return r.text
    except Exception as e:
        print(f'{method}请求发生错误:{e}')
        return ''

H
hjdhnx 已提交
64 65 66 67 68 69
def fetch(url,obj,method=None):
    if not method:
        method = 'get'
    obj = dealObj(obj)
    print(method)
    return base_request(url,obj,method)
H
hjdhnx 已提交
70 71

def post(url,obj):
H
hjdhnx 已提交
72 73 74 75 76 77 78 79 80 81 82
    obj = dealObj(obj)
    return base_request(url,obj,'post')

def request(url,obj,method=None):
    if not method:
        method = 'get'
    obj = dealObj(obj)
    if not obj.get('headers') or not obj['headers'].get('User-Agent'):
        obj['headers']['User-Agent'] = UC_UA

    return base_request(url, obj, method)