检查文件夹是否存在,不存在就创建:os.makedirs(folder_name, exist_ok=True)
读取文件里面所有的账号:
# 读取账号文件并将账号存入列表
with open(accounts_filename, "r", encoding="utf-8") as file:
lines = file.readlines()
remaining_lines = lines.copy()
txt里面的json格式不会被读取为json,需要进行:random_line = json.loads(random_line.strip())
变成json格式。
读取账号密码并使用:
accounts_file = r右键文件地址
# 读取账号文件并将账号存入列表
with open(accounts_file, "r", encoding="utf-8") as file:
lines = file.readlines()
remaining_lines = lines.copy()
for line in lines:
username, password = line.strip().split(':', 1)
params = {"username": username, "password": password}
print(params)
‘w’(写入模式):如果文件不存在,会创建一个新文件。如果文件已存在,会覆盖原有内容。使用此模式时,只能写入数据,不能读取数据。
‘r’(读取模式):这是默认模式,用于读取文件内容。如果文件不存在,会引发错误。
‘a’(追加模式):用于在文件的末尾追加新内容。如果文件不存在,会创建一个新文件。
读取账号密码:
username, password = line.strip().split(':', 1)
将json格式变成字典,向里面添加键值对:
# 从JSON数据中获取'data'键的值
data_value = data['data']
# 创建保存数据的字典
data_to_save = {
"data": data_value, # 上传的原始数据
"times": "0", # 初始化次数为0
"time": str(int(time.time() * 1000)) # 获取当前时间戳并转换为字符串
}
格式化字典以键值对的形式打印:
print(json.dumps(response.json(), indent=4, ensure_ascii=False))
# 将requests库获取到的http响应的内容转为json格式
response = requests.post('https://example.com', cookies=cookies, headers=headers, data=data).json()
print(response)
# 格式化json,
print(json.dumps(response, indent=4, ensure_ascii=False))
使用函数就是def 函数名(),把之前的代码缩进两格,打印变成return 之前要打印的,之后调用就是print(函数名)
一部分程序依赖一个函数,希望实现响应为200执行下去,响应不是200直接结束,例如:
import requests
import json
def get_arkose_token():
cookies = {}
headers = {}
response = requests.post('https://example.com', cookies=cookies, headers=headers)
if response.status_code == 200:
return response.json()['token']
else:
raise Exception(f"请求失败,状态码为:{response.status_code}")
try:
arkose_token = get_arkose_token()
except Exception as e:
print(str(e))
exit()
cookies = {
'arkoseToken': arkose_token,
}
headers = {}
# 注意:以下是虚构的用户名和密码,实际情况下您需要填写正确的用户信息。
data = {
'username': 'example_username',
'password': 'example_password',
}
response = requests.post('https://example.com', cookies=cookies, headers=headers, data=data)
print(response.text)
# 输出response.cookies中的cookie信息
for cookie in response.cookies:
print('Cookie名称:', cookie.name)
print('Cookie值:', cookie.value)
print('------------') # 分隔线
最重要的是:
函数内部的
if response.status_code == 200:
return response.json()['token']
else:
raise Exception(f"请求失败,状态码为:{response.status_code}")
函数外面的
try:
arkose_token = get_arkose_token()
except Exception as e:
print(str(e))
exit()
使用循环,对特定网址发起预定次数的请求:
获取全部cookie:
打印response的一系列属性:
import requests
cookies = {
}
headers = {
}
response = requests.get('https://example.com', cookies=cookies, headers=headers)
# 打印响应状态码
print('状态码:', response.status_code)
# 打印响应头
print('响应头:', response.headers)
# 打印 cookies
print('Cookies:', response.cookies.get_dict())
# 打印响应文本内容
print('文本内容:', response.text)
# 打印响应内容的二进制形式
print('二进制内容:', response.content)
# 打印请求响应周期
print('请求响应周期:', response.elapsed)
# 如果状态码为4XX或5XX,抛出异常
try:
response.raise_for_status()
except requests.HTTPError as e:
print('请求出错:', e)
content_type = response.headers.get('Content-Type')
print(f"Content-Type: {content_type}")
# 打印响应编码
print('响应编码:', response.encoding)
# 打印最终URL
print('最终URL:', response.url)
# 打印重定向历史
print('重定向历史:', response.history)
# 检查内容是否为JSON格式并安全打印
try:
json_content = response.json()
print('JSON内容:', json_content)
except ValueError:
print('响应内容不是JSON格式')
# 打印响应状态码原因短语
print('状态码原因:', response.reason)
# 打印产生这次响应的Request对象
print('请求对象:', response.request)
print('请求方法:', response.request.method)
print('请求URL:', response.request.url)
print('请求头部:', response.request.headers)
print('请求体:', response.request.body)
# 打印原始响应体
print('原始响应体:', response.raw)
# 打印原始响应体的读取方式
if hasattr(response.raw, 'read'):
print('原始响应体内容:', response.raw.read(10))
利用文字特征终止代码运行:
if "登录失败,请重试" in response.text or "403 error" in response.text:
print("登录失败,请重试或服务器拒绝访问")
break # 中止代码执行
打印第几次调用:
def make_requests(num_requests):
for i in range(num_requests):
print(f"这是第 {i+1} 次调用")
print(models())
在flask返回json格式用jsonify包裹
读取本地的数据或者返回的数据是这样的
{"uuid": "89b260b9-567a-4689-a1d5-feb60188b250", "ip": "20.172.5.47", "timestamp": 1713936776597, "beijing_time": "2024-04-24 05:32:56"}
{"uuid": "113c154b-819b-4b6d-8ae0-444b7c1f5a80", "ip": "20.172.5.47", "timestamp": 1713936776120, "beijing_time": "2024-04-24 05:32:56"}
要这样使用:
import requests
import json
response = requests.get('https://exanple.com')
# 逐行读取数据并解析每个 JSON 对象
for line in response.iter_lines():
# 解码每行数据为 UTF-8,并解析为 JSON 对象
json_data = json.loads(line.decode('utf-8'))
# 打印解析后的 JSON 对象
print(json_data)
print(type(json_data)) # 打印数据类型
先这样,水帖