诗仙·1957 发表于 2023-12-26 15:12:32

基于seleium模拟登录获取http请求及响应内容-插件使用介绍

本帖最后由 诗仙·1957 于 2024-2-2 10:27 编辑

参考场景:
插件版seleium模拟登录一个网站获取token???? - 活字格专区 - 求助中心 - 葡萄城开发者社区 (grapecity.com.cn)

使用提示:
windows服务器建议是2019server及以上,因为谷歌浏览器内核采用版本是121,而windows2012最高只能安装到109版本。
加群获取121谷歌浏览器安装包,或自己到官方下载安装到服务器才能使用该插件
linux服务器同样需要安装谷歌浏览器121版本,可到群里下载安装包,然后使用sudo dpkg -i 安装包名称   
来实现安装,如果安装过程中提示依赖软件包问题,则根据提示补上安装即可。



2024-1-08更新:
修改编辑步骤的方式,采用对象列表属性来控制步骤。利于第一次使用插件的人
具有一定的防错误能力,附件提示信息


删除自身识别验证码的能力因为,免费ocr语言包,文件太大,少了都是几百M,因此集成到插件后导致插件包自身文件太大,不利于安装及扩展需求,
以后将收集更多免费或收费(性价比的识别平台),
增加新的返回数据能力,

如果你需要的数据位于页面多次点击菜单后才会出现,那么浏览器可能会把数据切片发送,导致你取指定关键字响应数据,会取到不正确的或者为0,因此返回全部,则循环所有的响应内容,如果包含该关键字则返回,再从结果中取值。
例如:



新增调试模式,用于设计器调试,可同时返回数据,以及是否开启返回运行日志的功能,开启则会多一个变量叫返回日志

2024-1-5更新:
集成了超级鹰及图灵2个收费的验证码平台
能快速识别常规验证码并模拟登录
演示:
【活字格插件-基于seleium模拟登录获取http请求及响应内容(过验证码演示)】 https://www.bilibili.com/video/B ... 63056685bc6226a1422


2023-12-29更新:

1.新增直接获取cookie
2.新增直接获取响应参数值
3.新增获取全部响应内容,响应内容则是responseReceived类别requestId获取的响应内容
4.修复Bug若干,提升性能,现返回全部内容已改为筛选后的内容,筛选了requestWillBeSentExtraInfo,requestWillBeSent,responseReceived三种网络请求与响应内容

例如:

可以直接获取了。


界面:



首先人工登录网站,在输入账户密码前先按f12打开开发者调试工具


先点击清理以便观看网络请求的过程
首先是观察该网站,发现要先点击


此时我们要找到该按钮的元素对应的xpath,方法很简单

然后鼠标悬停与展开的代码一行,左边的网页就会显示,对应的元素

然后右键该行

然后打开记事本,粘贴看结果

这种造型的就表示xpath路径,
然后继续相同的方法寻找输入账户的输入框元素xpath,以及密码输入框等

以及登录按钮的这些信息找完了,就可以填入插件开始使用了。
注意事项:
网址必须是http或https开头
xpath不能有括号,常规你复制的xpath都是没有括号的
如果你的网址打开直接就是输入框,可以选择

这里的填写方法是根据页面来决定的


先人工登录该网站,记住必须先F12中打开登录。
然后选fetch/xhr筛选。




然而响应内容会有一些些变化,但都可以抓取
例如我需要的token

当你直接选择

这样取出来会是空的,怎么办呢

先选择

取出来的结果丢记事本搜索,发现他这个值的对象名称不一样,但值是正确的。于是就需要修改响应参数取值的关键字





如果你是在设计器上调试,还可以勾选这个查看浏览器在运行过程中走到哪一步了。如同文章最开始的场景中效果测试中演示的那样。
如果是发布后linux服务器上的工程请不要勾选,linux是没有图形界面的。因此只建议在设计器中勾选调试使用。

现在拿到了token,就可以取该网站的数据了,例如:

然后查看该post方法


现在拿到了请求地址,以及token,就可以直接发起http请求获取订单列表了。
例如请求地址是:
https://xxxxxx/els/order/saleOrderHead/list?keyWord=&purchaseOrg=&pageSize=20&pageNo=1&filter=%7B%7D&column=id&order=desc
pagesize=20   这个一看就是当前页显示多少条数据的意思,对比页面的订单列表果然是20个数据
pageNo=1这个一看就是页面的意思,机器翻译,=1就是获取第一页。那么活字格循环一下就可以获取全部订单了。
因为token在请求头上面,所以



至于存储数据就可以根据响应内容的格式来处理一下json就行了

例如发现需要存储的订单信息数据全部都是在result下面的records,其中records是一个数组,表示很多订单。
然后设置变量
=res.result.records
然后循环

然后就是循环存储





该插件尚未上架,后续根据大家的使用情况,慢慢加强,例如,选择步骤的方式经行,第一步点击,第2步输入》。。。
有的网站还有验证码,因此后续将加入过验证码的功能
获取方式-反馈QQ群:106929215


如果你也想开发该类插件,可查阅这个文章
C#爬虫之通过Selenium获取浏览器请求响应结果 - 什么都看不懂 - 博客园 (cnblogs.com)

















tominson 发表于 2023-12-27 18:59:15

有demo吗?有点爬虫的意思

诗仙·1957 发表于 2023-12-29 10:44:04

tominson 发表于 2023-12-27 18:59
有demo吗?有点爬虫的意思

暂无法提供domo,因为domo涉及账户密码才能使用插件。建议详细查阅说明,有疑问加群提出

true 发表于 2024-1-2 13:22:17

格友们太强了,这种东西代码都搞着烦人,还封装成插件了

leilei6120 发表于 2024-1-27 08:42:08

牛! 什么时候可以上架?

siwicloud 发表于 2024-1-30 20:52:48

配享太庙

紫色幽魂 发表于 2024-2-2 20:22:44

学习下,看着上手难度有点大,想着能做个自动签到功能,有活动的能自动参加的就好了

laity 发表于 2024-4-23 13:37:34

这个插件只支持chome嘛,其他浏览器可以不,还有版本也需要升级吧

诗仙·1957 发表于 2024-4-23 14:31:34

laity 发表于 2024-4-23 13:37
这个插件只支持chome嘛,其他浏览器可以不,还有版本也需要升级吧

用爱发电,免费插件还要咋地,升级浏览器内核的事情有空有心情了才弄,121版本也不低了,其他浏览器规则太复杂不想弄

laity 发表于 2024-4-23 15:57:43

诗仙·1957 发表于 2024-4-23 14:31
用爱发电,免费插件还要咋地,升级浏览器内核的事情有空有心情了才弄,121版本也不低了,其他浏览器规则 ...

好的,大佬:hjyzw:
页: [1]
查看完整版本: 基于seleium模拟登录获取http请求及响应内容-插件使用介绍