December 8, 2024
清华源
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结尾
...
October 24, 2023
一点点加密,随便还找了一个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)
October 22, 2023
清华源
#
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结尾
...