C# C中特定html标记的正则表达式#

C# C中特定html标记的正则表达式#,c#,html,regex,web-scraping,C#,Html,Regex,Web Scraping,我正试图从谷歌产品页面上抓取特定的html标签,包括它们的数据。我想获得这个有序列表中的所有标记,并将它们放入一个列表中 代码如下: <td valign="top"> <div id="center_col"> <div id="res"> <div id="ires"> &

我正试图从谷歌产品页面上抓取特定的html标签,包括它们的数据。我想获得这个有序列表中的所有
  • 标记,并将它们放入一个列表中

    代码如下:

       <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>
    
    
    
  • 已使用$59.99 谷歌拍卖 虚拟数据
  • 已使用$59.99 谷歌拍卖 虚拟数据
  • 已使用$59.99 谷歌拍卖 虚拟数据
  • 已使用$59.99 谷歌拍卖 虚拟数据

  • 我想获取所有的
  • 标记以及每个标记中的数据。这可能吗?

    不使用正则表达式,而是使用xml解析器之类的东西,可能对您的情况更有用。将其加载到xml文档中,然后使用SelectNodes之类的工具来获取您要查找的数据


    您可以使用正则表达式来解析HTML,而不是使用正则表达式

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

    上面的代码将为您提供文档中的所有项目。要将它们添加到列表中,您只需迭代集合并将每个项添加到列表中。

    对于这个特定问题,我不会使用正则表达式

    相反,我会这样攻击它:

    1) 将页外另存为html字符串。 2) 使用前面提到的htmlagilitypack或HTMLIDY(我的首选项)转换为XML。 3) 使用xDocument按标记浏览Dom对象并保存数据


    试图创建一个正则表达式来从一个可能流动的HTML页面中提取数据会让你心碎

    嗯。所有这些的正则表达式???不可能,HTML不能被解析,它需要被解释。试着用谷歌搜索“来自html的c#数据”(以前从未做过类似的事情,sry)基本检查:检查示例当你说你想要所有的“标签”时,你是指html标签吗?你想挖多深?它应该遵循什么特定的格式?我还建议删除边缘的div-这让你有点难以理解你到底在说什么…请看我在OP上的评论。有一个库更具体到HTML,并且更能容忍源代码中的错误-HTMLAgilityPackI将记住这一点,以备将来使用谢谢!