屏幕抓取 - 但无法模拟javascript

时间:2012-04-09 12:17:48

标签: asp.net

下载特定网址的内容没有问题。

但是我有一个ASP.NET页面,我必须屏幕抓取点击按钮后面的有趣数据。如何模拟该按钮上的单击并获取Web服务器将生成的数据?

按钮运行此javascript:

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

现在我正在使用此ASP.NET代码来获取特定URL的内容:

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。

1 个答案:

答案 0 :(得分:0)

您查看__doPostBack函数中的代码,并重现它的作用。

手动执行此操作并不难。模拟Javascript引擎以便它可以处理任何类型的脚本是完全不同的事情。