Skip to content

Mhenwa/ecaisys_clinic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


手册

原理

  1. 通过对小程序的抓包发现了指向的网址为医彩药事,并且可以通过浏览器登录

image-20260112144119370

  1. 查看浏览器开发工具,发现其API均未加密

image-20260112144352254

  1. “填写问卷”其实是发送带有对应参数的请求,以临床拜访记录为例
{"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-载荷

手动插入一条数据,就可以看到add请求了

image-20260112150836305

{
  "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=2

查看add-标头

image-20260112150251055

  • token填写到.envECAISYS_TOKEN
ECAISYS_BASE_URL=https://ys.ecaisys.com
ECAISYS_TOKEN=Bearer YOUR_TOKEN
ECAISYS_COOKIE="name=value; name=value"

抓取系统中的costumerId数据

Note

新地区第一次需要,如果已经获得数据了,跳过此步

点击拜访客户,之后找如下的载荷界面

image-20260112152711290

找到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 条

About

医彩药事填写脚本

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages