【问题标题】:Using curl on server - how to redirect javascript requests to target server?在服务器上使用 curl - 如何将 javascript 请求重定向到目标服务器?
【发布时间】:2012-01-08 08:42:05
【问题描述】:

所以我在我的服务器上运行了一个爬虫,我需要执行 javascript 来访问我的目标站点上的一些数据(目标是我想要爬取的那个)。我有一个关于这里问题的不同方法的问题,但不需要回答这个问题:[Dead]How to successfully POST to an old ASP.NET site utilizing Asynchronous Postback

我的 javascript 在我调用我的 php 爬虫的浏览器中执行。问题是所有 javascript 请求都以我自己的服务器而不是目标站点为目标(我在我自己的站点而不是目标站点上获得了 /index.php 之类的链接)。

我的 javascript 经验非常少,我不确定如何将我的请求重定向到我的目标。这是我正在调用的页面中的 javascript 函数示例:

<script type="text/javascript">
//<![CDATA[
var theForm = document.forms['aspnetForm'];
if (!theForm) {
    theForm = document.aspnetForm;
}
function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }
}
//]]>
</script>

...以及我的称呼:

echo "<SCRIPT language='javascript'>__doPostBack('-254870369', '')</SCRIPT>";

是否有某种方法可以将我自己的服务器的服务器地址别名为目标服务器,或者采取其他一些方便的解决方法来解决这个问题?

【问题讨论】:

    标签: php javascript asp.net html postback


    【解决方案1】:

    无需在目标中注入 javascript。 您可以使用wireshark 来研究目标提出的所有请求。 Wireshark 是一个很难掌握但功能强大的工具。相反,您可以尝试firebug addon 的net 选项卡。

    一旦您知道目标如何从其服务器发送请求和接收数据,您就可以使用 curl 来模拟请求/接收数据。您不再需要构建爬虫了。

    如果这不能回答您的问题,请多解释一下场景。

    【讨论】:

    • 我将不得不进一步调查。我尝试了 Wireshark,它看起来非常复杂/乏味(数百个请求查看,我不知道我在寻找什么)。如果我花一些时间学习如何使用它,我相信这将是一个有用的工具 - 但现在我正处于制造/破坏它的点并且需要尽快得到一些东西。我可能需要想出一个 hacky 修复程序,然后在 Wireshark 上投入一些时间。
    猜你喜欢
    • 1970-01-01
    • 2012-11-22
    • 2011-06-07
    • 1970-01-01
    • 2016-12-16
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2013-06-09
    相关资源
    最近更新 更多