ここにC#があります。私はこれをグーグルで試してみて、私が必要とするものではないカップルの答えを得ました。私はウェブサイトから(X)HTMLをつかんで、特定の要素をつかむためにDOM(実際には、CSSセレクタが望ましいが、何でもよい)を使いたいと思う。これはC#でどのくらい正確に行われますか?C#のWebサイトからコンテンツを取得しています
答えて
HTMLファイルの操作にHtmlAgilityPack
を使用します。これはあなたにLinqへのアクセスを与えるでしょう。良いこと(tm)です。ファイルはSystem.Net.WebClient
でダウンロードできます。
Html Agility Packを使用すると、htmlを読み込んで必要な要素を見つけることができます。
HTMLを取得するには、WebClientオブジェクトを使用できます。
HTMLを解析するには、HTMLAgility librraryを使用できます。
HttpWebRequestを使い始めると、URLの内容を簡単に取得できます。そこから、HTMLを解析するために何かする必要があります。それが難しいことが始まるところです。多くの(ほとんどの)ウェブサイトのHTMLページは100%有効なXMLではないので、通常のXMLパーサは使用できません。 Webブラウザは、無効部分を回避するために特別にパーサーを実装しています。 Rubyでは、Nokogiriのようなものを使用してHTMLを解析するので、.NETポートを探したり、HTMLを読むように特別に設計された別のパーサーを探したりすることもできます。
編集:
話題が出てくる可能性があるので:WebClient vs. HttpWebRequest/HttpWebResponse
また、HtmlAgilityに注目するために答えた人に感謝します。私はそれが存在するのか分からなかった。
htmlを解析するためのより一般的なライブラリの1つであるhtml agility packを使用してください。
// prepare the web page we will be asking for
HttpWebRequest request = (HttpWebRequest)
WebRequest.Create("http://www.stackoverflow.com");
// execute the request
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
// we will read data via the response stream
Stream resStream = response.GetResponseStream();
string tempString = null;
int count = 0;
do
{
// fill the buffer with data
count = resStream.Read(buf, 0, buf.Length);
// make sure we read some data
if (count != 0)
{
// translate from bytes to ASCII text
tempString = Encoding.ASCII.GetString(buf, 0, count);
// continue building the string
sb.Append(tempString);
}
}
while (count > 0); // any more data to read?
その後、あなたはあなたがページの取得にSystem.Net.WebClient
またはSystem.Net.HttpWebrequest
を使用することができますが、要素のための解析はクラスによってサポートされていない
を必要とする要素をつかむためにXQuery式または正規表現を使用します。
使用HtmlAgilityPack(http://html-agility-pack.net/)
HtmlWeb htmlWeb = new HtmlWeb();
htmlWeb.UseCookies = true;
HtmlDocument htmlDocument = htmlWeb.Load(url);
// after getting the document node
// you can do something like this
foreach (HtmlNode item in htmlDocument.DocumentNode.Descendants("input"))
{
// item mathces your req
// take the item.
}
- 1. jsonのコンテンツをPythonのWebサイトから取得する
- 2. 別のサイトからコンテンツを取得
- 3. WebサイトからIISサイトIDを取得
- 4. XMLフォームのWebサイトを取得していますか?
- 5. C++プログラム内のWebサイトからデータを取得するには
- 6. WinHttp PostはWebサイトのコンテンツを取得できません
- 7. WebサイトからPDFコンテンツをダウンロードする -
- 8. カートのコンテンツをあるWebサイトから別のWebサイト、プラットフォームに依存しないソリューションに渡しますか?
- 9. JQuery:iframeからコンテンツを取得していますか?
- 10. ASP.NET WebサイトからIISサイト名を取得
- 11. C#のWebから匿名の型を取得します。
- 12. JavaのWebページからURLを取得しています
- 13. umbraco - Webサイトから取得したxmlファイルのxslt変換
- 14. VB.NET HTTPWebRequestを使用してWebサイトのIPアドレスを取得しますか?
- 15. SimpleHTMLDomを使用してWebサイトから画像を取得する
- 16. コンテンツ(CMS)と機能を別々のWebサイトに分割していますか?
- 17. ASP.NET MVC 3 Webサイト管理ツールからデータベースを取得します
- 18. cを使用してasp.netのテキストボックスからコンテンツを取得する#
- 19. コンテンツからURLを取得
- 20. サイトからローディングアイコンを取得
- 21. CのWebサイトからデータを読み取る
- 22. デイリーディスカウントアグリゲーターは、どのようにさまざまな取引Webサイトからデータを取得しますか?
- 23. javascriptを使用して別のWebサイトからhtml要素を取得しますか?
- 24. facebook iframeから親ページのHTMLコンテンツを取得しますか?
- 25. オーチャードCMSのコンテンツを他のサイトから取得する方法は?
- 26. Webサイトにログインしてデータを取得する
- 27. VB WebサイトにサブサイトとしてASP.NET C#Webサイトを統合
- 28. Delphiアプリケーションから実行した後、Webサイトからpdfファイルパスを取得しますか?
- 29. HttpContextリクエストを使用しない絶対WebサイトURLの取得
- 30. C++バイナリファイルメソッドがファイルからコンテンツを削除していますか?
私たちはで動作するようにするためにあなたには、いくつかのサンプルコードを追加してもらえますか? – jp2code
コメントを落とすことはできません。 –