ここに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. C#:Webサイトから名前のリストを取得していますか?
- 2. jsonのコンテンツをPythonのWebサイトから取得する
- 3. Node.jsのWebページからコンテンツを取得しています
- 4. WebサイトからIISサイトIDを取得
- 5. 別のサイトからコンテンツを取得
- 6. C++プログラム内のWebサイトからデータを取得するには
- 7. XMLフォームのWebサイトを取得していますか?
- 8. Objective-CのWebサイトからHTMLデータを取得 - パースHTML
- 9. WinHttp PostはWebサイトのコンテンツを取得できません
- 10. AWSのクライアントWebサイトからAPIを介してデータを取得
- 11. WebサイトからPDFコンテンツをダウンロードする -
- 12. カートのコンテンツをあるWebサイトから別のWebサイト、プラットフォームに依存しないソリューションに渡しますか?
- 13. Scala Webページからhtmlコンテンツを取得
- 14. WebサイトからHTML IDを取得して情報を入力し、c#またはvb.netのボタンを押す
- 15. 他のサイトから無制限のコンテンツを取得する
- 16. JQuery:iframeからコンテンツを取得していますか?
- 17. ASP.NET WebサイトからIISサイト名を取得
- 18. Webサービスを使用しない外部Webサイトからデータを取得
- 19. C#のWebから匿名の型を取得します。
- 20. HTTPS WebサイトからHTTPサーバーからJSONPを取得しようとしています
- 21. PythonのhtttpsサイトからHTMLコンテンツを取得
- 22. PHPを使用したPHP Webページからコンテンツを取得
- 23. JavaのWebページからURLを取得しています
- 24. umbraco - Webサイトから取得したxmlファイルのxslt変換
- 25. 別のWebサイトからデータを取得する方法
- 26. MagentoのWebサイトからMagento APIを取得する
- 27. コンテンツ(CMS)と機能を別々のWebサイトに分割していますか?
- 28. VB.NET HTTPWebRequestを使用してWebサイトのIPアドレスを取得しますか?
- 29. C#asp.netのWebサイトとC#デスクトップアプリケーションが連携しています
- 30. SimpleHTMLDomを使用してWebサイトから画像を取得する
私たちはで動作するようにするためにあなたには、いくつかのサンプルコードを追加してもらえますか? – jp2code
コメントを落とすことはできません。 –