2012-04-09 38 views
1

我沒有問題下載特定網址的內容。屏幕抓取 - 但不能模擬javascript

但是我有一個ASP.NET頁面,我必須屏幕刮擦有趣的數據是在點擊一個按鈕後面。如何模擬點擊該按鈕並獲取網絡服務器將生成的數據?眼下

javascript:__doPostBack('ctl00$ctl01$DefaultSiteContentPlaceHolder1$Col1$ucNavBar$rptButtons$ctl00$btnPage','') 

我使用這個ASP.NET代碼來獲得一個特定的URL的內容:

按鈕運行這個JavaScript

public string GetDataFromUrl(string strUrl) 
{ 
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(strUrl); 
request.Accept = "text/html, application/xhtml+xml, */*"; 
request.UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64;  Trident/5.0)"; 
request.KeepAlive = true; 
using (StreamReader streamReader = new   StreamReader(request.GetResponse().GetResponseStream(), Encoding.UTF8, true)) 
{ 
return streamReader.ReadToEnd(); 
} 
} 

- 編輯

我找到了一個解決方案。使用程序Fiddler能夠確切地看到當我點擊按鈕時會發生什麼。然後,我嘗試製作一個與真實電話儘可能相似的POST。

回答

0

您可以看看__doPostBack函數中的代碼,並重現它的功能。

手動做這件事並不難。模擬Javascript引擎,以便它可以處理任何類型的腳本是完全不同的問題。