2012-04-09 95 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引擎,以便它可以处理任何类型的脚本是完全不同的问题。