呼叫大神~,使用正则去匹配html内容

一落山川_ 2020-09-18 03:45:11
后台通过Http拉取到html,我需要页面内容,比如说微博搜索页面的html存到string中,但是我需要提取每一个结果的博主名称,正文、时间、点赞数等等,如图


后台有整个页面的HTML,博主名字可以轻松通过正则提取,但是正文内容中存在标签套标签,这个正则表达式咋写啊。

<div class="card">
<div class="card-feed">
<div class="avator">
<a href="//weibo.com/1642634100?refer_flag=1001030103_" target="_blank" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:user_pic"><img src="https://tvax3.sinaimg.cn/crop.1.0.436.436.50/61e89b74ly1gdiq06vjw9j20c60c4aac.jpg?KID=imgbed,tva&Expires=1600425299&ssig=ZmGEU9n0XC"></a>
</div>
<!--微博内容-->
<div class="content" node-type="like">
<div class="info">
<div class="menu s-fr">
<a href="javascript:void(0);" action-type="fl_menu"><i class="wbicon">c</i></a>
<ul node-type="fl_menu_right" style="display:none;">
<li><a href="javascript:void(0);" onclick="javascript:window.open('//service.account.weibo.com/reportspam?rid=4550049907085671&type=1&from=10501&url=&bottomnav=1&wvr=6', 'newwindow', 'height=700, width=550, toolbar =yes, menubar=no, scrollbars=yes, resizable=yes, location=no, status=no');">投诉</a></li>
</ul>
</div>
<div>
<a href="//weibo.com/1642634100?refer_flag=1001030103_" class="name" target="_blank" nick-name="新浪科技" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:user_name">新浪科技</a>
<a href="//verified.weibo.com/verify" target="_blank" title="微博官方认证"><i class="icon-vip icon-vip-b"></i></a>
<!--广告微博加关注按钮 -->
</div>
</div>
<p class="txt" node-type="feed_list_content" nick-name="新浪科技">
<a href="https://s.weibo.com/weibo?q=%23iOS14%E6%AD%A3%E5%BC%8F%E7%89%88%23" target="_blank">#<em class="s-color-red">iOS</em><em class="s-color-red">14</em>正式版#</a>【苹果9月16日正式发布<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>和iPadOS <em class="s-color-red">14</em>】<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>和iPadOS <em class="s-color-red">14</em>系统从9月16日开始向用户推送,<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>系统首次为iPhone的主屏幕带来了小工具,还能将所有应用整合到新的App Library中,此外还添加了画中画功能(此前类似的功能已经出现在了iPad设备上)。新系统还新增了翻译应用。你的手机升 ​ <a href="//weibo.com/1642634100/Jl01EtJj1?refer_flag=1001030103_" action-type="fl_unfold" target="_blank">展开全文<i class="wbicon">c</i></a> </p>
<p class="txt" node-type="feed_list_content_full" nick-name="新浪科技" style="display: none">
<a href="https://s.weibo.com/weibo?q=%23iOS14%E6%AD%A3%E5%BC%8F%E7%89%88%23" target="_blank">#<em class="s-color-red">iOS</em><em class="s-color-red">14</em>正式版#</a>【苹果9月16日正式发布<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>和iPadOS <em class="s-color-red">14</em>】<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>和iPadOS <em class="s-color-red">14</em>系统从9月16日开始向用户推送,<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>系统首次为iPhone的主屏幕带来了小工具,还能将所有应用整合到新的App Library中,此外还添加了画中画功能(此前类似的功能已经出现在了iPad设备上)。新系统还新增了翻译应用。你的手机升级到<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>了吗?<img src="//img.t.sinajs.cn/t4/appstyle/expression/ext/normal/a1/2018new_doge02_org.png" title="[doge]" alt="[doge]" class="face"> <a href="http://t.cn/A64QqoJO" target="_blank">你的手机升级到<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>了吗?</a> <a href="http://t.cn/A64QqpGz" target="_blank"><i class="wbicon">O</i>苹果将于9月16日正式发布<em class="s-color-red">iOS</em> <em class="s-color-red">14</em>和iPadOS <em class="s-color-red">14</em></a> <a href="javascript:void(0);" action-type="fl_fold">收起全文<i class="wbicon">d</i></a>
</p>
<!--card解析-->
<!--webpage解析 -->
<!--微博红包-->
<!--外链文章-->
<div class="media media-item-a">
<div class="pic">
<a href="https://tech.sina.com.cn/it/2020-09-16/doc-iivhvpwy6950947.shtml" target="_blank">
<img src="//n.sinaimg.cn/tech/transform/115/w550h365/20200916/b403-izeysaz3076818.jpg" onerror="javascript:this.src='//img.t.sinajs.cn/t6/style/images/face/face_card_wb.png'" alt="苹果将于9月16日正式发布iOS 14和iPadOS 14" title="苹果将于9月16日正式发布iOS 14和iPadOS 14">
</a>
</div>
<div class="info">
<a href="https://tech.sina.com.cn/it/2020-09-16/doc-iivhvpwy6950947.shtml" target="_blank">
<h4>苹果将于9月16日正式发布iOS 14和iPad...</h4>
<p>据报道,苹果针对iPhone、iPad、Apple Watch和Apple TV等设备开发的新一代软件已经做好发布准备。</p>
</a>
<!--<a href="#" class="s-btn-c s-fr"><i class="wbicon s-color-a">+</i> 关注</a>-->
</div>
</div>
<!--/外链文章-->


<!--/card解析-->
<p class="from">
<a href="//weibo.com/1642634100/Jl01EtJj1?refer_flag=1001030103_" target="_blank" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:wb_time">
09月17日 07:44
</a>
 来自 <a href="//app.weibo.com/t/feed/6vtZb0" rel="nofollow">微博 weibo.com</a> </p>
</div>
<!--/微博内容-->
</div>
<div class="card-act">
<ul>
<li><a href="javascript:void(0);" action-type="login" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:fav">收藏</a></li>
<li><a href="javascript:void(0);" action-data="allowForward=1&mid=4550049907085671&name=新浪科技&uid=1642634100&suda-data=key%3Dtblog_search_weibo%26value%3Dseqid%3A160041449832901127775%7Ctype%3A1%7Ct%3A0%7Cpos%3A1-0%7Cq%3AIOS14%7Cext%3Acate%3A26%2Cclick:do_repost,mid:4550049907085671" action-type="login" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:repost,mid:4550049907085671"> 转发 115</a></li>
<li><a href="javascript:void(0);" action-data="pageid=weibo&suda-data=key%3Dtblog_search_weibo%26value%3Dweibo_h_1_p_p" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:comment" action-type="login">评论 1147</a></li>
<li><a title="赞" action-data="mid=4550049907085671" action-type="login" href="javascript:void(0);" suda-data="key=tblog_search_weibo&value=seqid:160041449832901127775|type:1|t:0|pos:1-0|q:IOS14|ext:cate:26,mpos:2,click:like,mid:4550049907085671,act:add"><i class="icon-act icon-act-praise"></i> <em>48563</em></a></li>
</ul>
</div>
<div node-type="feed_list_repeat"></div>
</div>

...全文
11635 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一落山川_ 2020-09-21
  • 打赏
  • 举报
回复
引用 6 楼 by_封爱 的回复:
这个多麻烦啊...改起来还费劲 现在不是有很多html分析器吗.. c#版本的jquery什么的 HtmlAgilityPack 还有很多 都支持xpath... 这个不香吗
多谢,HtmlAgilityPack是个好东西,真香~
ziqi0716 2020-09-21
  • 打赏
  • 举报
回复
推荐 HtmlAgilityPack ,并使用xpath. 高级点的,.net有爬虫框架,基于上面包开发的:DotnetSpider:https://github.com/dotnetcore/DotnetSpider 当然不管使用哪个库或框架,了解html协议,语法及xpath等基本概念还是有必要的.
by_封爱 版主 2020-09-21
  • 打赏
  • 举报
回复
这个多麻烦啊...改起来还费劲 现在不是有很多html分析器吗.. c#版本的jquery什么的 HtmlAgilityPack 还有很多 都支持xpath... 这个不香吗
  • 打赏
  • 举报
回复
正在表达式是最低层的一点儿词法解析概念,离语法解析差的很远。比较高级的 html 语法解析组件可以使用 Jumony.Core 之类的工具。
一落山川_ 2020-09-18
  • 打赏
  • 举报
回复
只有一个标签的可以配到,正文内容是多个标签嵌套的就搞不定了

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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