1

我没有问题下载特定 URL 的内容。

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

按钮运行这个 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。

4

1 回答 1

0

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

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

于 2012-04-09T12:20:45.877 回答