2011-11-28 54 views
0

因此,我在我的服務器上運行爬蟲程序,並且需要執行javascript才能訪問我的目標站點上的一些數據(目標是我想要爬網的目標)。我在這裏遇到了一個關於這個問題的不同方法的問題,但是在回答這個問題時不需要這個問題:[Dead]How to successfully POST to an old ASP.NET site utilizing Asynchronous Postback在服務器上使用curl - 如何將JavaScript請求重定向到目標服務器?

我的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>"; 

有沒有走樣服務器的一些方法從我自己的服務器到目標服務器的地址,還是採取其他一些方便的解決方法來解決這個問題?

回答

1

沒有必要在目標中注入JavaScript。 您可以使用wireshark來研究目標所做的所有請求。 Wireshark是一個相當難掌握但功能強大的。相反,您可以嘗試firebug addonnet選項卡。

一旦您知道目標如何發送請求並從其服務器接收數據,就可以使用curl來模擬請求/接收數據。您不需要再構建抓取工具。

如果這不能解答您的問題,請多說明一下。

+0

我必須進一步研究。我試過Wireshark,它看起來非常複雜/繁瑣(數百個查看請求,我不知道我在找什麼)。如果我花了一些時間學習如何使用它,我相信它會是一個有用的工具 - 但現在我處於一個讓它/突破點並且需要一些東西。我可能需要提出一個黑客修復方案,稍後再投入一些時間在Wireshark上。 – David

相關問題