2016-04-30 14 views
0

私はC#アプリケーションを介してリソースを持つhtmlファイルをダウンロードしたいと思います。それは異なって、私が見つけたWebRequestがブラウザと異なるhref属性値を返す

<link href="/Content/css/reset.css" rel="stylesheet" type="text/css" />

:ブラウザビューから

<link href="/(X(1)S(uonhh5kpvq0fdcxuh4pytyph))/Content/css/reset.css" rel="stylesheet" type="text/css"/>

オリジナルライン:私は、ページ "www.autocont.cz" をダウンロードしようとすると、それはいくつかのhrefの値を変更します異なるUAのビット。

ブラウザの取得と同じ結果を得るにはどうすればよいですか?

ありがとうございます。

+0

javascriptはリンクを変更しますか? –

+0

ブラウザが使用するユーザーエージェント文字列を設定してみてください。 – Musa

+0

リンクを変更しないでください。任意のUAを設定するだけでS(random_values)の別のランダムな値を作成します – Enemim

答えて

0

おそらくhref値にクライアント側の実行が行われ、ブラウザの出力が得られます。 System.Windows.Forms.WebBrowserコントロールを使用して、そのHTMLリソースのブラウザ出力を取得してみてください。

string getBrowserText(string path) { 
    WebBrowser browser = new WebBrowser(); 
    browser.ScrollBarsEnabled = false; 
    browser.AllowNavigation = true; 
    browser.Navigate(path); 
    bool completed = false; 
    browser.DocumentCompleted += (sender, e) => completed = true; 
    while (browser.ReadyState != WebBrowserReadyState.Complete) 
      { 
       Application.DoEvents(); 
      } 
    while (!completed) ; 
    string doctext = ((WebBrowser)browser).DocumentText; 
    return doctext; 
} 

これは、htmlリソースのブラウザのレンディションを返す必要があります。あなたはおそらくそれをスレッドなどで実行するべきです。

+0

先生、ありがとう。それは動作します、あなたは私に多くの時間を節約しました。しかし、私はWPFアプリケーションで使用されるC#ライブラリで使用する必要があるので、Windows.Formsを参照せずにそれを行う方法を見つける必要があります。私は、コードをチェックする人が間違っているかもしれないと恐れています。もう一度、ありがとう。 – Enemim

関連する問題