2012-04-09 5 views
1

特定のURLのコンテンツをダウンロードすることは問題ありません。スクリーンスクレイピング - しかし、javascriptをシミュレートすることはできません

私はASP.NETページを持っています興味深いデータがボタンをクリックするとどこにあるのかをスクレイプする必要があります。どのようにしてそのボタンのクリックをシミュレートし、Webサーバーが生成するデータを取得できますか?

ボタンは、このJavaScriptを実行します:

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

は、今私は、特定のURLのコンテンツを取得するには、このASP.NETコードを使用しています:

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(); 
} 
} 

- EDIT

私は解決策を見つけました。ボタンをクリックしたときに起こる現象を正確に見るために、プログラムFiddlerを使用しました。それから、できるだけ実際の呼び出しと同じように見えるPOSTを作成しようとしました。

答えて

0

__doPostBack関数のコードを見て、そのコードを再生します。

これを手動で行うことは難しくありません。どのような種類のスクリプトも処理できるようにJavascriptエンジンをシミュレートすることは、まったく別の問題です。

関連する問題