Python

Python

清华源

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple model

linux中python2和3的pip
python{2,3} -m pip install xxx

Base64 #

import base64
import string
base64.b64decode() #解码
base64.b64encode() #编码

处理变表base64

str1 = "d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD==" #解码字符串

string1 = "TSRQPONMLKJIHGFEDCBAUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" #变换后的码表
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

print(base64.b64decode(str1.translate(str.maketrans(string1,string2))))

正则 #

取AB中间字符

(?<=A).*?(?=B)   #不包含AB
A.*?B            #包含AB
A.*?(?=B)        #包含A不包含B
import re
re.findall(r"(?<=A).*?(?=B)",str)

n位字符取一次

re.findall(r'.{2}',str)

requests #

proxies={'https':'127.0.0.1:8080','http':'127.0.0.1:8080'}

线程池 #

from concurrent.futures import ThreadPoolExecutor
def test(x):
    pass
with ThreadPoolExecutor(max_workers=5) as t:
    for x in range(10):
        t.submit(test,x)

hash #

import hashlib
m = hashlib.md5()
m.update(b'123')
m.hexdigest()

hashlib.md5(b'123').hexdigest()

hashlib.new('md5', b'123').hexdigest()

指定md5结尾

...

某图库

一点点加密,随便还找了一个oss直连

import random
import time
def encode(_str):
    staticchars = "PXhw7UT1B0a9kQDKZsjIASmOezxYG4CHo5Jyfg2b8FLpEvRr3WtVnlqMidu6cN"
    encodechars = ""
    for i in range(len(_str)):
        num0 = staticchars.find(_str[i])
        if num0 == -1:
            code = _str[i]
        else:
            code = staticchars[(num0 + 3) % 62]
            
        num1 = random.randint(0, 61)
        num2 = random.randint(0, 61)
        encodechars += staticchars[num1] + code + staticchars[num2]
    return encodechars

def timestamp():
    return str(int(time.time()))
def sing():
   return encode("eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJvcGVuaWQiOiJvMTExMTExMTExMTExMTExMTExMTEiLCJleHBpcmVfdGltZSI6MTY5NzMwNDUzNX0=.)FxVKiDH9rnMKEuTNMkRa7ibMrhp-Vdi-FHBgWOomdaQ###"+timestamp())

import requests

headers = {
    'authority': 'stapi.youpengw.com',
    'accept': '*/*',
    'accept-language': 'zh-CN,zh;q=0.9',
    'content-type': 'application/json',
    'sec-fetch-dest': 'empty',
    'sec-fetch-mode': 'cors',
    'sec-fetch-site': 'cross-site',
    'sign': sing(),
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 MicroMessenger/7.0.20.1781(0x6700143B) NetType/WIFI MiniProgramEnv/Windows WindowsWechat/WMPF XWEB/8447',
    'xweb_xhr': '1',
}

json_data = {
    'homepage_id': '233033',
    'classify_id': 5,
    'sort_type': 'default',
    'album_id': 0,
    'uid': 219050,
    'page': 1,
    'limit': 32,
    'action': 'cover',
    'version': 1,
    'appid': 'wx111117',
    'openid': '1111111',
    'timestamp': 1697353429134,
}

response = requests.post('https://xxx.xxxx.com/miniwechat/v1/natujun/photoList', headers=headers, json=json_data)
k=response.json()
s=[]
for i in k['data']['photoList']:
    s.append(i['url'])
print(s)

python Notes

清华源 #

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple model

linux中python2和3的pip
python{2,3} -m pip install xxx

Base64 #

import base64
import string
base64.b64decode() #解码
base64.b64encode() #编码

处理变表base64

str1 = "d2G0ZjLwHjS7DmOzZAY0X2lzX3CoZV9zdNOydO9vZl9yZXZlcnGlfD==" #解码字符串

string1 = "TSRQPONMLKJIHGFEDCBAUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" #变换后的码表
string2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

print(base64.b64decode(str1.translate(str.maketrans(string1,string2))))

正则 #

取AB中间字符

(?<=A).*?(?=B)   #不包含AB
A.*?B            #包含AB
A.*?(?=B)        #包含A不包含B
import re
re.findall(r"(?<=A).*?(?=B)",str)

n位字符取一次

re.findall(r'.{2}',str)

requests #

import requests


url='http://example.com'
data={'example':'123'}     # data 即from-data
header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.47'}     #header  请求头
proxy={'http':'127.0.0.1:7890','https':'127.0.0.1:7890'}     #设置代理

# from-data
result=requests.post(url,data=data,headers=header)           # 发起一个post请求

# 发送json
# result=requests.post(url,json=data,headers=header)

result.status_code='utf-8'     #设置编码,一般无需

print(result.text)             #返回文本内容
print(result.json())           # 解析json,得到字典
print(result.content)          # 获得二进制内容,如mp3,常用写入文件
print(result.headers)          

线程池 #

from concurrent.futures import ThreadPoolExecutor
def test(x):
    pass
with ThreadPoolExecutor(max_workers=5) as t:
    for x in range(10):
        t.submit(test,x)

hash #

import hashlib
m = hashlib.md5()
m.update(b'123')
m.hexdigest()

hashlib.md5(b'123').hexdigest()

hashlib.new('md5', b'123').hexdigest()

指定md5结尾

...