-6

Googleの製品ページからデータを含む特定のhtmlタグを取得しようとしています。この順序付きリスト内のすべての<li>タグを取得し、それらをリストに入れたいと思います。

コードは次のとおりです。

   <td valign="top">
        <div id="center_col">
          <div id="res">
            <div id="ires">
              <ol>
                   <li class="g">
                  <div class="pslires">
                    <div class="psliimg">
                      <a href=
                      "https://www.google.com">
                     </a>
                    </div>

                    <div class="psliprice">
                      <div>
                        <b>$59.99</b> used
                      </div><cite>google auctions</cite>
                    </div>

                    <div class="pslimain">
                      <h3 class="r"><a href=
                      "https://www.google.com">
                      google</a></h3>

                      <div>
                 dummy data     </div>
                    </div>
                  </div>
                </li>

                 <li class="g">
                  <div class="pslires">
                    <div class="psliimg">
                      <a href=
                      "https://www.google.com">
                     </a>
                    </div>

                    <div class="psliprice">
                      <div>
                        <b>$59.99</b> used
                      </div><cite>google auctions</cite>
                    </div>

                    <div class="pslimain">
                      <h3 class="r"><a href=
                      "https://www.google.com">
                      google</a></h3>

                      <div>
                 dummy data     </div>
                    </div>
                  </div>
                </li>

              <li class="g">
                  <div class="pslires">
                    <div class="psliimg">
                      <a href=
                      "https://www.google.com">
                     </a>
                    </div>

                    <div class="psliprice">
                      <div>
                        <b>$59.99</b> used
                      </div><cite>google auctions</cite>
                    </div>

                    <div class="pslimain">
                      <h3 class="r"><a href=
                      "https://www.google.com">
                      google</a></h3>

                      <div>
                 dummy data     </div>
                    </div>
                  </div>
                </li>
                <li class="g">
                  <div class="pslires">
                    <div class="psliimg">
                      <a href=
                      "https://www.google.com">
                     </a>
                    </div>

                    <div class="psliprice">
                      <div>
                        <b>$59.99</b> used
                      </div><cite>google auctions</cite>
                    </div>

                    <div class="pslimain">
                      <h3 class="r"><a href=
                      "https://www.google.com">
                      google</a></h3>

                      <div>
                 dummy data     </div>
                    </div>
                  </div>
                </li>
              </ol>
            </div>
          </div>
        </div>

        <div id="foot">
          <p class="flc" id="bfl" style="margin:19px 0 0;text-align:center"><a href=
          "/support/websearch/bin/answer.py?answer=134479&amp;hl=en">Search Help</a>
          <a href=
          "/quality_form?q=Pioneer+Automotive+PF-555-2000&amp;hl=en&amp;tbm=shop">Give us
          feedback</a></p>

          <div class="flc" id="fll" style="margin:19px auto 19px auto;text-align:center">
            <a href="/">Google&nbsp;Home</a> <a href=
            "/intl/en/ads">Advertising&nbsp;Programs</a> <a href="/services">Business
            Solutions</a> <a href="/intl/en/policies/">Privacy &amp; Terms</a> <a href=
            "/intl/en/about.html">About Google</a>
          </div>
        </div>
      </td>

<li class="g">すべてのタグとそれぞれのデータを取得したいと思います。それは可能ですか?

4

3 に答える 3

2

xmlパーサーのようなものを使用して正規表現を使用する代わりに、状況に役立つ場合があります。それをxmlドキュメントにロードし、SelectNodesなどを使用して、探しているデータを取得します。

http://msdn.microsoft.com/en-us/library/4bektfx9.aspx

于 2012-05-21T15:18:01.313 に答える
1

この特定の問題には正規表現を使用しません。

代わりに、私はそれを攻撃します:

1)ページ外をhtml文字列として保存します。2)前述のhtmlagilitypackまたはhtmltidy(私の好み)を使用してXMLに変換します。3)xDocumentを使用して、タグごとにDomオブジェクトをナビゲートし、データを保存します。

流動的なHTMLページからデータを抽出するために正規表現を作成しようとすると、心が痛むでしょう。

于 2012-05-21T15:41:07.353 に答える
0

正規表現を使用する代わりにHtmlAgilityPack、HTMLの解析に使用できます。

var doc = new HtmlDocument();
doc.LoadHtml(html);
var listItems = doc.DocumentNode.SelectNodes("//li");

上記のコード<li>は、ドキュメント内のすべてのアイテムを提供します。それらをリストに追加するには、コレクションを繰り返し、各アイテムをリストに追加する必要があります。

于 2012-05-21T15:35:10.383 に答える