javascript - 下载从 javascript 生成 POST 参数的主页

标签 javascript jquery html wget

做了很多研究,但遗憾的是现在我完全陷入困境。

我需要下载一个html页面: 为此,我在公式中填写了不同的数据,然后单击提交按钮,然后我想保存响应。

使用 Firebug,我可以看到我的数据已填写并通过 POST 发送。不幸的是,还有一个参数我无法追踪它如何生成的,如果没有最后一个参数,我不会得到足够的 html 响应,而是得到一个错误页面。

wget 和curl(cookies、useragent、header、referrer)在没有最后一个参数的情况下失败!

我对 jquery 和 javascript 不太熟悉,所以我不知道数据来自哪里,但如果浏览器知道我也应该能够!

我发现这很相似,只是我的看起来更难,因为生成了字段:wget : get field info before sending post-data

就我而言,我将其追溯到:

<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 列表中,但也许我做错了什么(有数千个条目)
  • 调试上面的脚本,我可以看到 string=34928321 作为局部变量,但我看不到函数是从哪里调用的
  • 如果我打开 www.homepage.com/getmyData.asp?str=erServiceXUVC(带或不带参数),只会出现一个错误页面。

考虑使用Splash作为为我运行 javascript 的代理,而不是 wget 该页面,但由于我还不了解其机制,所以我对此表示怀疑。

那我能做什么呢?

也许是一个支持 JavaScript 的浏览器,可以接受来自命令行的命令:打开、填写、发送、saveHtml?备择方案? wget 的解决方案(最喜欢!)?

最佳答案

我认为添加此调用是为了防止(或至少使其变得更难)做您想做的事情。

诀窍就在这一行:

$.get('/getmyData.asp?str=erServiceXUVC',function(string){
   ..
});

该行执行 AJAX 请求。当请求成功时,调用回调函数,并将响应传递到参数string中。

因此,通过此请求,会生成一个代码,然后将其与表单一起发回。如果不检查实际环境我无法确定,但我认为 AJAX 请求取决于 session (可能通过 cookie)。如果没有该 session ,它可能会生成错误消息。

因此,要解决此问题,您必须获取该页面及其附带的所有 cookie。然后,在请求代码时,使用相同的 cookie,以便服务器将在同一 session 中看到该请求。

这很可能是防止垃圾邮件机器人滥用表单的技巧。因此,很难猜测可能还有哪些其他技巧,以及还需要什么才能使其发挥作用。

关于javascript - 下载从 javascript 生成 POST 参数的主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26194410/

相关文章:

javascript - 带有悬停状态问题的 Chrome 动画 CSS3 3D 立方体

javascript - jQuery .hover() 自动返回到之前的状态

javascript - PHP 生成 HTML 中的 JS 错误

javascript - jquery-ui Accordion : adding rows without destroying and recreating?

javascript - 如何访问父分区的第一个子分区

php - 在 &lt;iframe&gt; 和 <php include> 之间选择的常见做法是什么?

javascript - 如何在 Node.js 中发送发布请求后重定向到另一个页面?

javascript - 在下拉菜单中循环遍历年份

javascript - DataTable 水平滚动条看起来像窗口滚动 -x

javascript - 与新版本高音扬声器共享选项