私はいくつかのWebスクレイピングを行うためのツールを開発しようとしています。これは、 HTML Agility Packを使用して特定のWebサイトに対して以前に行ったことがありますが、この場合、ユーザーが[ウェブサイト上のテキスト。
ユーザーが「製品1」を選択したかどうかはわかりませんが、とにかくHTMLタグなどを取得できるので、アルゴリズムをフィードして、ドキュメント全体で同じタイプのタグを検索できますか?
製品1
製品説明
価格$0.00
私はいくつかのWebスクレイピングを行うためのツールを開発しようとしています。これは、 HTML Agility Packを使用して特定のWebサイトに対して以前に行ったことがありますが、この場合、ユーザーが[ウェブサイト上のテキスト。
ユーザーが「製品1」を選択したかどうかはわかりませんが、とにかくHTMLタグなどを取得できるので、アルゴリズムをフィードして、ドキュメント全体で同じタイプのタグを検索できますか?
製品1
製品説明
価格$0.00
jqueryセレクターと同様に、特定のタグでDOMをクエリしたいようです。以下のプロジェクトを見てください。あなたが探しているものかもしれません。
HTMLをHtmlDocumentオブジェクトにロードしてから、テキスト入力が表示される最初のノードを選択します。ノードには、必要なものがすべて揃っています。
var doc = new HtmlDocument();
string input = "Product 1";
doc.LoadHtml("Your HTML here"); //Or doc.Load(), depends on how you're getting your HTML
HtmlNode selectedNode = doc.DocumentNode.SelectSingleNode(string.Format("//*[contains(text(),'{0}')]", input));
var tagName = selectedNode.Name;
var tagClass = selectedNode.Attributes["class"].Value;
//etc
もちろん、これはすべて実際のページ構造、「製品1」が他の場所に表示されるかどうか、ページ内の他の要素も「製品1」を含む同じノードを使用するかどうかなどに依存します。