2011-11-14 14 views
0

私の目標は、.Net Webブラウザからのデータ取得のみです。まず私は、ログインのHTML敏捷性パックを使用して(たとえば、Gmailの)ページをロードウェブサイトからデータを取得する方法ログインした後に!(Html Agility pack)

public void start_parsing(string URL_) 
{ 
    var webGet = new HtmlWeb();    
    var document = webGet.Load(URL_); 
} 
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
{     
    string url = webBrowser1.Url.ToString();    
    start_parsing(webBrowser1.Url.ToString());  
} 

「文書」は、最初に(ホームページ)で成功したHTMLデータを取得しますが、私は、「文書にログインしたとき"変数にはデータが含まれていないので、追加しなければならない関数がいくつかあることは確かですが、どういうものなのか分かりません。

ご協力いただければ幸いです!

+0

もっと徹底的な例を投稿すると助けになります...ログインは言及されていますが、基本的にコードはありません。 – Timmerz

答えて

0

まだログインしていますか? new HtmlWeb()を作成すると、ログインしたセッションデータを保持する可能性のあるすべてのCookieが削除されます。

ログイン後にヘッダー項目をコピーするか、コードが同じHtmlWebオブジェクトを再利用して、同じヘッダー値を保持するようにする必要があります。

+0

まだログインしていないとは思いません。私はHtmlWebをコピーし、それを公開変数にしましたが、まだ変更はありませんでした! – dimazaid

+0

HtmlWebを見ると、おそらく 'webGet.UseCookies'プロパティを設定する必要もあります。デバッグするには 'document'変数をファイルにダンプしてWebブラウザで開いて、コードが実際にダウンロードしているものを確認します。 'File.WriteAllText(@" c:\ temp \ test.html "、document.DocumentNode.OuterHtml)' – Thymine

+0

これをやってみましたが、保存したページはログインページと同じです https://accounts.google.com/ServiceLogin?service=mail&passive=true&continue=https://mail.google.com/mail/x/quu8epfhjlzr/&ss=1&scc=1<mpl=ecobh&nui=5&btmpl=mobile – dimazaid

関連する問題