【问题标题】:How do I get url that is hidden by javascript on external website?如何在外部网站上获取被 javascript 隐藏的 url?
【发布时间】:2012-08-16 07:39:42
【问题描述】:

如何在外部网站上获取被 javascript 隐藏的 url?

例如:http://royaldesign.se/Att_Dricka.aspx 这个url通过页面导航是不变的,所以页面内容是通过javascript加载的。

页面链接位置:

javascript:__doPostBack('ctl00$masterContent$DataPager2$ctl00$ctl00','')
javascript:__doPostBack('ctl00$masterContent$DataPager1$ctl00$ctl01','')
javascript:__doPostBack('ctl00$masterContent$DataPager1$ctl00$ctl02','')

.....

有没有办法分析(手动或通过 PHP 脚本)函数 __doPostBack 以了解 url?

提前谢谢

【问题讨论】:

  • 如果你有它,你会用它做什么?在您的示例中,javascript 正在回发,这是指向原始页面的“链接”。
  • 您可能对我刚才对另一个问题的回答感兴趣:stackoverflow.com/questions/12029324/…
  • 我需要这些 url 来获取页面内容。我使用来自 php 的 file_get_contents。所以解决方案要么是获取 url,要么是使用 __doPostBack 函数模拟分页。

标签: javascript asp.net


【解决方案1】:

这些值没有隐藏,__doPostBack 方法回传给它自己。传递给 doPostBack 的那些值表示执行回发的控件的 html ID。

您查看的页面也是用 ASP.NET 编写的,而不是 PHP。

您可以使用浏览器调试工具查看通过 javascript 将哪些数据传回服务器。

【讨论】:

  • 这样可以获取页面内容吗?关键是我想使用 file_get_contents 来获取实际页面的内容。
  • 它正在触发表单并重新加载页面或通过 javascript 加载该段。您将不得不考虑使用 CURL 来触发相同的表单操作。
  • 那么没有比Curl更简单的方法了吗?您知道描述此功能的优秀 Curl 教程吗?
【解决方案2】:

__doPostBack javascript 函数用于向 asp.net 页面提交数据。

函数的第一个参数是事件目标。这是被点击的控件的ClientID

当页面被提交时,Asp.net 使用该值在服务器上引发Click 事件。

您可以自己通过 javascript 调用此 __doPostBack 函数,以获得与用户单击它相同的行为。

【讨论】:

  • 你能举个例子来说明如何做到这一点吗?
  • 在浏览器中打开包含这些链接的 URL。然后把它放在你的浏览器地址栏中javascript:__doPostBack('ctl00$masterContent$DataPager2$ctl00$ctl00','') 并按回车,它就会像按下相关按钮一样工作。有像greasemonkey这样的浏览器插件可以用来自动调用这样的脚本。
  • 我打开了 url royaldesign.se/Att_Dricka.aspx 然后粘贴 javascript:__doPostBack('ctl00$masterContent$DataPager1$ctl00$ctl02','') 到第 3 页,但是没有任何结果!!
【解决方案3】:

我在另一个问题上提供了一些关于“抓取”ASP.net 页面的提示:curl script just filling up the form not submitting it

此处讨论了使用 CURL 模拟 POST 请求的基础知识:PHP + curl, HTTP POST sample code?

我还要补充一点,如果您“抓取”的网站由与您有友好关系的人拥有(而不是竞争对手!),您也许可以节省 很多通过很好地询问内容或为您提供内容的静态 URL 来节省时间。

【讨论】:

  • 是否可以使用phantomjs(phantomjs.org)获取javascript加载的内容?
  • 你当然可以试试。请注意,不仅仅是您必须运行/模拟的 Javascript,还有用户交互本身 - 例如,__doPostBack 方法可能需要在提交按钮上的单击事件的上下文中触发,而不仅仅是一个上下文无关的函数。
猜你喜欢
  • 2013-10-11
  • 2011-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
相关资源
最近更新 更多