2016-04-02 15 views
1

私はウェブサイトから特定のテキストを読み込むアプリケーションを作ろうとしています。C#load html source as string

using AngleSharp.Parser.Html; 
... 
      var source = @" 
      <html> 
      <head> 
      </head> 
      <body> 
      <td class=""period_slot_1""> 
      <strong>TG</strong> 
      </body> 
      </html>"; 

     var parser = new HtmlParser(); 
     var document = parser.Parse(source); 
     var strong = document.QuerySelector("strong"); 

     MessageBox.Show(strong.TextContent); // Display text 

私は正常に上に行った。私はコピー&をhtmlの一部を変数に貼り付けて、私が探している値を得ることができるかどうかを確認しています。 これは、私が望む値、つまり文字列 "TG"を取得します。

ただし、ウェブサイトは毎回「TG」と異なる価値があるため、当時のウェブサイトのHTMLに直接参照するプログラムが必要です。

ソース変数にHTMLソース全体をロードして、それを動作させることができますか、どうすればできますか、自分が望むものを得るにはどうすればよいでしょうか?

ご質問ありがとうございました。

答えて

1

あなたは、あなたがインターネット上のページからURLから直接読んでほしいと言っていると思います。その場合は、次の操作を行う必要があります。

 WebClient myClient = new WebClient(); 
     Stream response = myClient.OpenRead("http://yahoo.com"); 
     StreamReader reader = new StreamReader(response); 
     string source = reader.ReadToEnd(); 
     var parser = new HtmlParser(); 
     var document = parser.Parse(source); 
     var p = document.QuerySelector("p");  
     // I used 'p' instead of 'strong' because there's no 
     //strong on that page 
     MessageBox.Show(p.TextContent); // Display text 
     response.Close(); 
+0

ありがとうございました! :) –

+0

質問してもらえますか?私はWebbrowserオブジェクトを使用してWebページをロードし、ログインしました。あなたの助けを借りてURLをロードできますが、WebページのURLを置くと、まだログインしていないページのHTMLが読み込まれます。ログインしているページのhtmlを取得する方法を知っていますか? –

+0

私はそれに答えることができるかどうかわかりません。その特定のページでログインプロセスがどのように機能するかは、大きく異なります。あなたのWebクライアントをログインさせる何らかの種類のHTTP要求があるはずですが、Getメソッドの代わりにPostである可能性があります。ログインフォームのソースを見て、ログイン情報を送信するパラメータを確認することで、リクエストがどのようなものかを理解できますが、それはすべてのページで異なるはずです。 – jimboweb