C# C中特定html标记的正则表达式#
我正试图从谷歌产品页面上抓取特定的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"> &
<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&hl=en">Search Help</a>
<a href=
"/quality_form?q=Pioneer+Automotive+PF-555-2000&hl=en&tbm=shop">Give us
feedback</a></p>
<div class="flc" id="fll" style="margin:19px auto 19px auto;text-align:center">
<a href="/">Google Home</a> <a href=
"/intl/en/ads">Advertising Programs</a> <a href="/services">Business
Solutions</a> <a href="/intl/en/policies/">Privacy & 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将记住这一点,以备将来使用谢谢!