登录以及获取信息测试

This commit is contained in:
YueL1331
2026-01-16 15:15:33 +08:00
commit ee89284a4c
2 changed files with 147 additions and 0 deletions

91
拿取内容测试.py Normal file
View File

@ -0,0 +1,91 @@
import requests
import json
import os
# ================= 配置区域 =================
base_url = "http://111.198.24.44:88/index.php"
# 1. 登录信息
login_payload = {
"module": "Users",
"action": "Authenticate",
"return_module": "Users",
"return_action": "Login",
"user_name": "你的用户名", # <--- 记得填
"user_password": "你的密码", # <--- 记得填
"login_theme": "newskin"
}
# 2. 抓取数据参数 (保留了你之前的筛选条件)
data_payload = {
"module": "SalesOrder",
"action": "SalesOrderAjax",
"file": "ListViewData",
"sorder": "",
"start": "1",
"pagesize": "100",
"actionId": "1768546984243",
"isFilter": "true",
"search[viewscope]": "all_to_me",
"search[viewname]": "324126",
"filter[Fields0]": "subject",
"filter[Condition0]": "cts",
"filter[Srch_value0]": "W25A",
"filter[type0]": "text",
"filter[dateCondition1]": "prevfy",
"filter[Fields1]": "duedate",
"filter[Condition1]": "btwa",
"filter[Srch_value1]": "2025-01-01,2025-12-31",
"filter[type1]": "date",
"filter[Fields2]": "subject",
"filter[Condition2]": "dcts",
"filter[Srch_value2]": "取消",
"filter[type2]": "text",
"filter[search_cnt]": "3",
"filter[matchtype]": "all"
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Referer": "http://111.198.24.44:88/index.php?module=SalesOrder&action=index"
}
# ================= 执行逻辑 =================
session = requests.Session()
try:
print("1. 正在登录...")
session.post(base_url, data=login_payload, headers=headers)
if 'PHPSESSID' in session.cookies:
print(" 登录成功Cookie已获取。")
else:
print(" ⚠️ 警告:可能登录失败 (未检测到PHPSESSID)。")
print("2. 正在获取数据并导出...")
resp = session.post(base_url, data=data_payload, headers=headers)
# === 关键修改:保存文件 ===
try:
# 尝试解析 JSON
json_data = resp.json()
# 定义文件名
filename = "result.json"
# 写入文件
# ensure_ascii=False 保证中文能正常显示,而不是显示成 \u53d6\u6d88
with open(filename, 'w', encoding='utf-8') as f:
json.dump(json_data, f, ensure_ascii=False, indent=4)
print(f"\n✅ 成功!数据已保存到当前目录下的: 【{filename}")
print(f" 文件路径: {os.path.abspath(filename)}")
except json.JSONDecodeError:
print("\n❌ 失败:服务器返回的不是 JSON 格式。")
print("可能是 HTML 页面,已保存为 'error_page.html' 供检查。")
with open("error_page.html", "w", encoding="utf-8") as f:
f.write(resp.text)
except Exception as e:
print(f"发生错误: {e}")

56
登录测试.py Normal file
View File

@ -0,0 +1,56 @@
import requests
# 1. 准备登录信息
login_url = "http://111.198.24.44:88/index.php"
# 这是你刚刚抓到的 Payload 数据
payload = {
"error": "",
"login_theme": "newskin",
"module": "Users",
"action": "Authenticate",
"return_module": "Users",
"return_action": "Login",
"user_name": "TEST", # 在这里填入真实的用户名
"user_password": "test", # 在这里填入真实的密码
"code": "",
"user_validate": ""
}
# 伪装成浏览器(这很重要,防止被反爬虫拦截)
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
# 2. 创建一个 Session (会话)
# Session 的作用就像一个浏览器窗口,它会自动保存 Cookie
session = requests.Session()
try:
# 3. 发送登录请求
# allow_redirects=True 会自动跟随 301 跳转到主页,就像浏览器一样
response = session.post(login_url, data=payload, headers=headers, allow_redirects=True)
# 4. 检查结果
print(f"状态码: {response.status_code}")
# 获取到的 Cookie
print("获取到的 Cookies:")
print(session.cookies.get_dict())
# 简单的验证:如果返回的网页里包含了'退出'或用户名的字样,说明登录成功了
if "logout" in response.text.lower() or "退出" in response.text:
print("\n==> 登录成功! <==")
# 【进阶】: 登录成功后,你可以直接用这个 session 访问其他页面
# 比如访问主页获取数据,它会自动带上刚才拿到的 cookie
# home_page = session.get("http://111.198.24.44:88/index.php?module=Home&action=index")
# print(home_page.text[:200])
else:
print("\n可能登录失败,请检查用户名密码。")
# 如果失败,打印一部分返回内容看看原因
print("返回内容预览:", response.text[:500])
except Exception as e:
print(f"发生错误: {e}")