2016-07-08 10 views
-2

ご挨拶Stackoverflow!私はHTML文書を解析する方法について少し助けを求めています。私の挑戦は、私はHTML AgilityパックなどのサードパーティのDLLを使用することができないということです。残念ながら、これはすべてコード経由で行われなければなりません。私はJSonを調べていましたが、誰かがもっと簡単な方法を持っていた可能性があります。私はhttp://www.wowhead.com/item=109118/blackrock-oreのようなウェブページから特定のデータを検索しようとしています。私はデータを検索するために複数のセクションがあります:各セクションは、以下から始まります:HTML文書を解析して項目のリストを取得する

new Listview({template: 

そしてこのセクションには "id"があります。私が探しているのは、アイテムのタイプ(スペル、npc、オブジェクトなど)に関する「id」のリストです。

残念ながら、私のスキルセットは、これまたは正規表現と同程度ではありません。私は誰かが私を助けることを望んでいた。お時間をいただきありがとうございます。

編集:すべての値を見つけるためにregexを使い終わった。助けてくれた人に感謝します。

+3

可能な複製を使用してtemplateid属性名に続くこの単一引用符内の内容をキャプチャします(http://stackoverflow.com/質問/ 56107/what-is-the-the-best-way-to-c-html-in-c)Alanの答えを見てください。サードパーティのライブラリを使用せずにこれを行う方法を示しています。正規表現を解析しないでくださいHTMLのような既知の言語 – abc123

+0

その答えは実際には機能しません。 WebBrowser()にはBrowserメソッドはありません。 –

答えて

0

まあ、SOユーザーの数百人は、あなたが技術的に<script>...</script>タグ内のコンテンツをスクレイピングしているので、あなたはこの1つで逃げることができるかもしれ、あなたnot to regex HTMLを教えてくれますが。

ここで問題を解決しましょう。

ページソースを調べると、<script>...</script>タグ内のJSが一貫してフォーマットされているように見えます。これは私たちの仕事を簡単にします。

template:\s'([^']++)',\sid:\s'([^']++)' 

我々はid属性がtemplate属性が続くことを知っています。また、このWebページの開発者は、idtemplateの値を一重引用符で囲んでいました。そこで我々は、[C#でHTMLを解析するための最良の方法は?]の'([^']++)'

+0

私に正規表現を説明していただきありがとうございます。しかし、質問してください。アイテムが存在する場合、アイテムごとにどのように解析しますか?つまり、あるページには「呪文」があり、もう1つのページにはありません。私は各テンプレート項目の名前を取得し、その中にIDを格納したいと思います。 私はコピーパスタの領域を掘り下げていることを知っています。私はそれを私がそれを学ぶことを確かめるためにいくつかの助けを借りて私自身で理解しなければならないと信じています。しかし、おそらく私は少しのサンプルコードを与えることができるので、私は残りの部分を解決することができますか? –

+1

申し訳ありませんが、あなたが何を求めているのか分かりません。項目では、あなたは 'Listview'を意味すると思います。また、 "各テンプレート項目の名前"とは、 'Listview'内のテンプレートプロパティの値を意味するものとします。あれは正しいですか? – wpcarro

+1

この正規表現はすべて、 'Listview'構築オブジェクトの' template'属性の値と、まったく同じ構築オブジェクトの 'id'属性の値を取得します。 C#にはおそらく "キャプチャグループ"にアクセスする方法があるので、ページソース内のすべての一致を見つけ、それらを反復して、キャプチャグループ1(すなわち '$ 1')を使用して必要なデータ構造を構築しますIDのテンプレート項目名とキャプチャグループ2(つまり、 '$ 2')。私はそれ以上にあなたを助けることができるとは確信していません... – wpcarro

関連する問題