怎么抓取里面的内容

linshilong86 2010-03-27 08:11:55

<tr id="tr13793" style="display:none">
<td>
<table>
<tr>
<td>测试</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>测试</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>测试</td>
</tr>
</table>
</td>
<td>
<table>
<tr>
<td>测试</td>
</tr>
</table>
</td>
</tr>


问下大家,这段代码应该怎么抓取,我要抓取的是从<tr id="tr13793" style="display:none">开始到最后一个</tr>结束,而我现在抓取的数据只能抓到第一个<table& gt;的</tr>,下面的数据没了,显然这不符合要求,问下各位有没有更好的办法,抓取到一整块
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
newdigitime 2010-03-27
  • 打赏
  • 举报
回复
用正则的贪婪模式.
hhhh63 2010-03-27
  • 打赏
  • 举报
回复
var str = document.getElementById("tr13793").innterHTML
托大人 2010-03-27
  • 打赏
  • 举报
回复

这里用WebClient类抓取页面源码保存在htm变量中

Regex reg = new Regex(@"<td>(?<htmls>[^\b]+?)</td>",RegexOptions.IgnoreCase);
MatchCollection mc = reg.Matches(htm);
for(int i=0;i<mc.Count;i++){
string s = mc[i].Groups["htmls"].Value; //这里就是抓取的值
}
-过客- 2010-03-27
  • 打赏
  • 举报
回复
try...

Regex reg = new Regex(@"(?is)<tr id=""tr13793"" style=""display:none"">(?><tr[^>]*>(?<o>)|</tr>(?<-o>)|(?:(?!</?tr\b).)*)*(?(o)(?!))</tr>");
MatchCollection mc = reg.Matches(yourStr);
foreach (Match m in mc)
{
richTextBox2.Text += m.Value + "\n--------------\n";
}

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧