- 通过对小程序的抓包发现了指向的网址为医彩药事,并且可以通过浏览器登录
- 查看浏览器开发工具,发现其API均未加密
- “填写问卷”其实是发送带有对应参数的请求,以临床拜访记录为例
- 请求网址:https://ys.ecaisys.com/api/visit/add
- 请求载荷
{"visitDuration":5,"customerId":"ID_1","participants":["秦xx"],"companyId":"ID_2","startTime":"2025-06-09 14:00:00","products":[{"promoteProductId":"ID_3","keyInfo":"广谱安全的抗抑郁药,适用于更多的人群","feedback":"积极"}],"type":2,"imageList":[],"visitAddress":null}因此,只要构造一个类似的请求就可以向系统中插入一个拜访记录
其中需要注意的:customerId是指本次拜访的人的id,而这个ID在系统数据库里,不可以随机生成
所以还需要提前把爬取所有的customerId,之后才能构造合法的请求
这些数据的获取
- 请求网址:https://ys.ecaisys.com/api/customers/contacts/ID_2/user
- 载荷:
keyword=&pageNo=2&pageSize=10&hospitalIds=&departmentIds=14%2C216%2C23%2C24%2C35%2C40%2C60%2C61%2C711%2C721%2C731%2C742%2C784%2C786%2C97&needMonthVisitCount=true&isUserData=true&visitDate=2025-06-10
即可获取数据:
??????????????.env?????
首先在浏览器登录,点击F12,填写一条记录
总之你需要查看两个请求的载荷,add载荷和customers查询的载荷,并修改对应的参数,他们是你个人的标识
手动插入一条数据,就可以看到add请求了
{
"visitDuration": 13,
"customerId": "ID_11",
"participants": [
"张xx"
],
"companyId": "ID_12",
"startTime": "2025-07-01 09:01:00",
"products": [
{
"promoteProductId": "ID_13",
"keyInfo": "广谱安全的抗抑郁药,适用于更多的人群",
"feedback": "积极"
}
],
"type": 2,
"imageList": [],
"visitAddress": null
}将此处的内容对应填到????.env的常量项下
ECAISYS_COMPANY_ID=YOUR_COMPANY_ID
ECAISYS_PARTICIPANTS=["??"]
ECAISYS_PRODUCTS=[{"promoteProductId":"YOUR_PRODUCT_ID","keyInfo":"??????????????????","feedback":"??"}]
ECAISYS_VISIT_TYPE=2token填写到.env的ECAISYS_TOKEN下
ECAISYS_BASE_URL=https://ys.ecaisys.com
ECAISYS_TOKEN=Bearer YOUR_TOKEN
ECAISYS_COOKIE="name=value; name=value"Note
新地区第一次需要,如果已经获得数据了,跳过此步
点击拜访客户,之后找如下的载荷界面
找到scripts\fetch_customers.py文件
-
修改
visitDate为目标月份 -
修改
departmentIds为对应数字(%2C表示逗号)
def fetch_all_customers():
page = 1
page_size = 100
all_customers = {}
visitDate = "2025-07-10"
departmentIds = "14,24,35,60,721,742"Tip
visitDate事实上并不参与合法性判断,但考虑到API的确要求了这个参数,还是改成当时月份较好
你将在终端看到类似于
PS E:\ecaisys_clinic> & C:/Users/19865/AppData/Local/Microsoft/WindowsApps/python3.12.exe e:/ecaisys_clinic/scripts/fetch_customers.py
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
共拉取客户数:2900找到main.py,填写要填充的日期区间和一天最多拜访的人数和最少拜访人数
if __name__ == "__main__":
# 填写临床拜访
run_doctor(
start_date=datetime(2025, 7, 1),
end_date=datetime(2025, 7, 2), # 日期区间
min_cnt=2, # 一天最少
max_cnt=3 #一天最多
)你将在终端看到类似于
PS E:\ecaisys_clinic> & C:/Users/19865/AppData/Local/Microsoft/WindowsApps/python3.12.exe e:/ecaisys_clinic/main.py
load success
parse customer success
2025-07-01
ID_14 2025-07-01 15:00:00
ID_15 2025-07-01 14:00:00
ID_16 2025-07-01 09:30:00
2025-07-01 完成 3 条
2025-07-02
ID_17 2025-07-02 14:00:00
ID_18 2025-07-02 15:30:00
ID_19 2025-07-02 10:30:00
2025-07-02 完成 3 条



