下载一个由javascript生成POST参数的主页
Download a homepage where a POST argument is beeing generated from javascript
做了很多研究,但遗憾的是,现在我完全陷入了困境。
我需要下载一个html页面:为此,我在公式中填写不同的数据,然后单击提交按钮,然后我想保存回复。
使用Firebug,我可以看到我的数据已经填写完毕并通过POST发送。不幸的是,还有一个参数我无法追踪它是如何生成的,如果没有最后一个参数,我不会得到足够的html响应,而是一个错误页面。
wget和curl(cookie、useragent、header、referrer)在没有最后一个参数的情况下失败!
我不太熟悉jquery和javascript,所以我不知道数据来自哪里,但如果浏览器知道的话,我也应该能够!
我发现这是类似的,只是我的似乎更难,因为字段是生成的:wget:在发送后数据之前获取字段信息
就我而言,我将其追溯到:
<script type="text/javascript">
$(document).ready(function(){
$.get('/getmyData.asp?str=erServiceXUVC',function(string){
$('#oikuZR').append('<input type="hidden" name="lsXUVp" value="'+ string +'">');
});
});
</script>
与使用真正的浏览器和wget(即使使用用户代理和其他东西)的区别在于,我无法访问这个值,如果我使用普通浏览器,就会显示这个值。
<input type="hidden" value="34928321" name="lsXUVp">
这正是我需要的值(与firebug POST相比)!但是
我的知识到此结束。
- 在代码中找不到"34928321"
- "#oikuZR"没有出现在firebug的DOM列表中,但可能我做错了什么(有数千个条目)
- 调试上面的脚本时,我可以看到字符串=34928321作为局部变量,但我看不出函数是从哪里调用的
- 如果我打开www.homepage.com/getmyData.asp?str=erServiceXUVC(带或不带params)只有一个错误页面
考虑过使用Splash作为代理为我运行javascript,然后创建该页面,但由于我还不了解其机制,我对此表示怀疑。
那么我该怎么办呢?
也许是一个支持javascript的浏览器,可以接受命令行中的命令:打开、填写、发送、保存Html?替代方案?wget的解决方案(最受欢迎!)?
我认为添加这个调用是为了防止(或者至少让你更难)做你想做的事情。
诀窍就在这一行:
$.get('/getmyData.asp?str=erServiceXUVC',function(string){
..
});
此行执行AJAX请求。当请求成功时,将调用回调函数,并将响应传递到参数string
中。
因此,通过这个请求,生成了一个代码,然后将其与表单一起发布。如果不检查实际环境,我无法确定,但我认为AJAX请求取决于会话(可能通过cookie)。如果没有该会话,它可能会生成一条错误消息。
因此,要解决此问题,您必须获取页面及其附带的任何cookie。然后,在请求代码时,使用相同的cookie,这样服务器将在同一会话中看到该请求。
这很可能是防止垃圾邮件机器人滥用表单的一个技巧。因此,很难猜测还有什么其他技巧,以及还需要什么才能让它发挥作用。
- 下载使用POST数据动态生成的文件
- post()向服务器动态生成的数据返回空响应
- 使用 PHP 生成的按钮生成 POST 请求,这些按钮调用带有参数的 javascript 函数
- 使用jQuery生成POST表单并处理结果
- PHP 生成 POST 表单
- POST 表单动态生成的输入
- 在 websocket 消息上生成 AJAX POST 会导致超时异常
- 查找要使用http-post方法发送到登录的动态生成的参数值
- 下载一个由javascript生成POST参数的主页
- 使用MVC 3剃刀中自动生成的post-submit/create按钮发送参数
- Persist通过post通过PHP表单动态生成html
- jQuery$.post,并在生成的HTML中进行搜索
- 在POST请求之前附加的GET请求,我的代码没有生成
- 通过AJAX处理表单——避免GET &;生成POST请求
- 无法从javascript生成的数据中获取PHP中的post数据
- 提交一个post请求与json数据和rest服务将生成excel文件,并通过流返回
- 如何打开POST方式生成的CSV文件
- React + Backbone应用程序生成2个post而不是1个
- 如何生成POST请求
- 在提交(POST)后,将选择保留在php生成的表单中