2017-10-09 6 views
1

私はウェブサイトのHTMLを掻きたい。ブラウザでこのウェブサイトにアクセスすると(ChromeやFireFoxのいずれであっても)、ウェブサイト+ HTMLには問題ありません。リダイレクトされずにHTMLページを取得する方法は?

HttpWebRequestHtmlAgilityPackのようなメソッドを使用してC#でHTMLを解析しようとすると、Webサイトが別のWebサイトにリダイレクトされるため、リダイレクトされたWebサイトのHTMLを解析します。

どのようにこの問題を解決するためのアイデアですか?

サイトは自分のプログラムをプログラムとして認識してすぐにリダイレクトすると思ったので、SeleniumとGoogleDriverとFireFoxDriverを使ってみましたが、運がないとすぐにリダイレクトされました。

ウェブサイト:https://www.jodel.city/7700#!home

private void bt_load_Click(object sender, EventArgs e) 
{ 
     var url = @"https://www.jodel.city/7700#!home"; 
     var req = (HttpWebRequest)WebRequest.Create(url); 
     req.AllowAutoRedirect = false; 
     // req.Referer = "http://www.muenchen.de/"; 
     var resp = req.GetResponse(); 
     StreamReader sr = new StreamReader(resp.GetResponseStream()); 
     String returnedContent = sr.ReadToEnd(); 

     Console.WriteLine(returnedContent); 
     return; 
} 
+0

誰もあなたにアクセスできない場合、その背後には何がありますか?ドイツのIPだけか何か? –

答えて

3

そしてもちろんのクッキーは素晴らしいと驚くほどであるため、クッキーは、againを非難しています。だから、

、のは、Chromeでサイト訪問初めて何が起こるか見てみましょう:

を(私はhttps://www.jodel.city/7700#!homeに行ってきました):

enter image description here

はい、私は302リダイレクトを得たが、私はまた、サーバーによって__cfduidのクッキー(実際には2回)を設定するように言われました。あなたがサイトを再度訪問すると

、あなたは正しくサイトに聞かせています。この時間は__cfduidクッキーが一緒に送られたか

enter image description here

お知らせ?それがここの鍵です。

  1. ゴー一度サイトに、リダイレクトされますが、応答ヘッダーからCookieの値を取得:

    あなたのC#コードは、する必要があります。

  2. 要求ヘッダーに正しいCookie値を持つサイトに戻る。

この投稿の最初のリンクから、リクエストのCookie値を設定する方法の例を参照できます。

+1

良いデバッグ - Fu gunr2171。 –

+0

今、記録のために、サーバーがこれをやっているかどうかわかりません。その関連記事のように、クライアントがサイトに到達する前にクッキー値を持っている必要はありません。うまくいけば、これはサーバーの部分のプログラミングが悪いことです。 – gunr2171

+0

あなたは素晴らしいです。それが動作するかどうかを確認するためにCookieValuesでテストしました。できます! Cookieを動的に取得する必要がありますが、私は自分でそれを行うことができます。ありがとう –

関連する問題