如何通过PowerShell的Invoke-WebRequest触发onclick事件并填充表单字段
PowerShell 模拟触发JS事件+提交表单实现方案
方案1:无浏览器依赖(性能更高,推荐)
Invoke-WebRequest 本身不带JS渲染引擎,无法直接执行onclick绑定的showSearch()方法,你可以直接逆向该JS方法的逻辑,手动构造完整表单提交,不需要模拟点击动作:
- 第一步:拉取初始页面的DOM内容
# 禁用基础解析才能拿到完整的表单DOM对象 $initialResponse = Invoke-WebRequest -Uri "你的目标页面URL" -UseBasicParsing:$false
- 第二步:在浏览器F12控制台查看
showSearch()的源码,确认两个核心信息:点击Yes按钮后会赋值的隐藏字段、需要填充的8个搜索字段的name属性 - 第三步:手动填充所有表单字段后提交
# 取页面对应的表单,可按索引或者id筛选 $targetForm = $initialResponse.Forms[0] # 给Yes对应的表单字段赋值,比如该按钮的name属性为agree,就填Yes $targetForm.Fields["agree"] = "Yes" # 填充8个搜索字段,替换为你实际的字段名和值 $targetForm.Fields["search_field1"] = "自定义值1" $targetForm.Fields["search_field2"] = "自定义值2" $targetForm.Fields["search_field3"] = "自定义值3" $targetForm.Fields["search_field4"] = "自定义值4" $targetForm.Fields["search_field5"] = "自定义值5" $targetForm.Fields["search_field6"] = "自定义值6" $targetForm.Fields["search_field7"] = "自定义值7" $targetForm.Fields["search_field8"] = "自定义值8" # 如果showSearch()会生成额外隐藏字段,手动添加即可 $targetForm.Fields["search_open_flag"] = "1" # 提交表单获取结果 $finalResponse = Invoke-WebRequest -Uri $targetForm.Action -Method $targetForm.Method -Body $targetForm.Fields -UseBasicParsing:$false
方案2:带JS渲染(适合逻辑复杂、逆向难度高的场景)
如果showSearch()逻辑复杂,包含加密、动态生成字段等操作,可以用支持JS执行的Selenium PowerShell模块实现真实点击:
- 第一步:安装依赖模块
Install-Module Selenium -Scope CurrentUser - 第二步:实现模拟点击+表单填充逻辑
Import-Module Selenium # 启动Edge浏览器驱动,也可替换为Start-SeChrome $driver = Start-SeEdge $driver.Url = "你的目标页面URL" # 定位value为Yes的元素 $yesButton = $driver.FindElementByXPath("//*[@value='Yes']") # 模拟点击,自动执行showSearch()渲染搜索字段 $yesButton.Click() # 等待页面渲染完成,可根据实际情况调整等待时间 Start-Sleep -Seconds 2 # 填充8个搜索字段,可按id、name、xpath等方式定位元素 $driver.FindElementById("field1_id").SendKeys("自定义值1") $driver.FindElementById("field2_id").SendKeys("自定义值2") # 依次填充剩余6个字段... # 提交表单,可点击提交按钮或者调用表单submit方法 $driver.FindElementById("submit_button_id").Click() # 获取返回的页面内容 $resultPage = $driver.PageSource # 退出浏览器驱动 $driver.Quit()
注意:使用无浏览器依赖方案时,建议先在浏览器端抓包确认点击Yes后提交的完整表单字段,避免遗漏隐藏字段导致请求失败。
内容的提问来源于stack exchange,提问作者Configueroa
相关产品推荐
相关产品推荐

