关于C#爬虫,想问一下,怎么抓指定table下面的内容

筱玖 2018-08-07 10:15:29

<BODY style="ZOOM: 1">
<!-- 头部导航—开始 -->
<DIV class=publicheader>
<DIV class=secondtop>
<UL>
<LI class="f_l seclogo"><A href="/cms/html/nanhai/index.html"><!-- <img src="/cms/sites/nanhai/images/seclogo.png"> -->
<DIV id=seclogo><IMG src="/cms/sites/nanhai/images/d_logo_2.png"> <IMG src="/cms/sites/nanhai/images/d_logo_1.png"> </DIV></A></LI>
<LI class="f_r secsearch">
<DIV style="COLOR: #fff" class=pageheadernav><A href="/cms/html/nanhai/index.html">首页</A>|<A href="http://wza.nanhai.gov.cn" target=_blank>无障碍版</A>|<A href="javascript:getHerf(1)">移动版</A>|<A href="/cms/sites/nanhai/rss.jsp">RSS订阅</A>|<A href="javascript:getHerf(3)">简</A>|<A href="javascript:getHerf(4)">繁</A>|<A href="javascript:getHerf(5)">英</A> <A href="http://www.foshan.gov.cn" target=_blank><IMG src="/cms/sites/nanhai/images/foshan_logo.png"></A> </DIV>
<DIV id=searchDiv class=topsearch>
<FORM id=form1 method=post action=/cms/sites/nanhai/search_list.jsp target=_blank><INPUT id=area name=area value=3 type=hidden> <INPUT name=pos value=1 type=hidden> <INPUT name=appid value=1 type=hidden> <INPUT name=webid value=nanhai type=hidden> <INPUT id=col name=col type=hidden>
<DIV id=sobg_div_20140423>
<DIV class=toparrow>
<DIV onmouseover=funcSetOn(this,1) onmouseout=funcSetOn(this,0) onclick=funcSel(this) state="0"><INPUT id=quanbu class=tops_bans readOnly value=全部>
<UL style="DISPLAY: none; HEIGHT: 54px" class=topxiala>
<LI column="">全部
<LI column="8212">办事
<LI column="7975">服务 </LI></UL></DIV></DIV>
<DIV class=topsout_wen><INPUT id=my_q class=toptxtinput onkeypress=javascript:formSubmit(event) onclick="document.getElementById('sou_font').style.display='block';" name=q defaultval="您想找什么"> </DIV></DIV>
<DIV style="CURSOR: pointer" class=topgo onclick=doFormSubmit();></DIV>
<DIV style="DISPLAY: none" id=sou_font class=sou_font><STRONG>热词:</STRONG> <A style="CURSOR: pointer" class=red onclick="wordSubmit('国土');">国土</A> <A style="CURSOR: pointer" class=red onclick="wordSubmit('改造');">改造</A> <A style="CURSOR: pointer" class=red onclick="wordSubmit('水');">水</A> <A style="CURSOR: pointer" class=red onclick="wordSubmit('科技信息');">科技信息</A> <A style="CURSOR: pointer" class=red onclick="wordSubmit('测');">测</A> </DIV></FORM></DIV></LI></UL>
<DIV class=seccondmenu>
<DIV class=navbox jQuery16406240316072814886="1">
<P><A href="/cms/html/11146/column_11146_1.html"><IMG style="POSITION: relative; BOTTOM: 0px" src="/cms/sites/nanhai/images/index_icon_46.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="2">
<P><A href="/cms/html/7855/column_7855_1.html"><IMG style="POSITION: relative; BOTTOM: 0px" src="/cms/sites/nanhai/images/index_icon_33.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="3">
<P><A href="/cms/html/7849/column_7849_1.html"><IMG style="POSITION: relative; BOTTOM: 0px" src="/cms/sites/nanhai/images/index_icon_35.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="4">
<P><A href="/cms/html/7850/column_7850_1.html"><IMG style="POSITION: relative; BOTTOM: 0px" src="/cms/sites/nanhai/images/index_icon_37.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="5">
<P><A href="/cms/html/7851/column_7851_1.html"><IMG style="POSITION: relative; BOTTOM: 0px" src="/cms/sites/nanhai/images/index_icon_39.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="6">
<P><A href="/cms/html/7852/column_7852_1.html"><IMG src="/cms/sites/nanhai/images/index_icon_41.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="7">
<P><A href="http://data.nanhai.gov.cn" target=_blank><IMG src="/cms/sites/nanhai/images/index_icon_42.png"></A></P></DIV>
<DIV class=navbox jQuery16406240316072814886="8">
<P><A href="/cms/html/7854/column_7854_1.html"><IMG src="/cms/sites/nanhai/images/index_icon_43.png"></A></P></DIV></DIV></DIV></DIV>
<DIV style="POSITION: relative; HEIGHT: 63px" id=topbg class=topbg jQuery16406240316072814886="9">
<DIV class=top>
<DIV class=top_menu>
<DIV class=infor_title_z>
<DIV class=index_nav_list>
<UL>
<LI>
<DIV class=jr_menu>
<UL>
<LI id=one8 onmouseover="setTab('one',8,8)"><A href="http://www.nhggzy.cn/cms/html/11146/column_11146_1.html">今日南海</A></LI></UL></DIV></LI>
<LI>
<DIV class=dw_menu>
<UL>
<LI id=one6 onmouseover="setTab('one',6,8)"><A href="http://www.nhggzy.cn/cms/html/7855/column_7855_1.html">党务信息</A></LI></UL></DIV></LI>
<LI>
<DIV class=zw_menu>
<UL>
<LI id=one2 onmouseover="setTab('one',2,8)"><A href="http://www.nhggzy.cn/cms/html/7849/column_7849_1.html">政务公开</A></LI></UL></DIV></LI>
<LI>
<DIV class=hw_menu>
<UL>
<LI id=one3 onmouseover="setTab('one',3,8)"><A href="http://www.nhggzy.cn/cms/html/7850/column_7850_1.html">服务领域</A></LI></UL></DIV></LI>
<LI>
<DIV class=hd_menu>
<UL>
<LI id=one4 onmouseover="setTab('one',4,8)"><A href="http://www.nhggzy.cn/cms/html/7851/column_7851_1.html">互动交流</A></LI></UL></DIV></LI>
<LI>
<DIV class=rw_menu>
<UL>
<LI id=one5 onmouseover="setTab('one',5,8)"><A href="http://www.nhggzy.cn/cms/html/7852/column_7852_1.html">人文南海</A></LI></UL></DIV></LI>
<LI>
<DIV class=ss_menu>
<UL>
<LI id=one1 onmouseover="setTab('one',1,8)"><A href="http://data.nanhai.gov.cn/" target=_blank>数说·南海</A></LI></UL></DIV></LI>
<LI>
<DIV class=bj_menu>
<UL>
<LI id=one7 class=hover onmouseover="setTab('one',7,8)"><A href="http://www.nhggzy.cn/cms/html/14272/column_14272_1.html">组织机构</A></LI></UL></DIV></LI></UL></DIV></DIV>
<DIV class=clean></DIV>
<DIV class=infor_textc>
<DIV style="DISPLAY: none" id=con_one_1>
<DIV class=ss_nhai_menu>
<UL>
<LI><A class=menu_c href="http://data.nanhai.cn/cms/sites/sjzy/folder.jsp" target=_blank>数据目录</A> | </LI>
<LI><A class=menu_c href="http://data.nanhai.cn/cms/sites/sjzy/list_app.jsp?ColumnID=11452" target=_blank>数据应用</A> | </LI>
<LI><A class=menu_c href="http://data.nanhai.cn/cms/sites/sjzy/list_alone.jsp?ColumnID=11454" target=_blank>互动交流</A> | </LI>
<LI><A class=menu_c href="http://data.nanhai.cn/cms/sites/sjzy/list_alone.jsp?ColumnID=11460" target=_blank>关于我们</A></LI></UL></DIV></DIV>
<DIV style="DISPLAY: none" id=con_one_8>
<DIV class=jr_nhai_menu>
<UL>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11147/column_11147_1.html">时政经济</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11148/column_11148_1.html">社会新闻</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11149/column_11149_1.html">镇街新闻</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11150/column_11150_1.html">社区新闻</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11151/column_11151_1.html">特别关注</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11152/column_11152_1.html">城事民生</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11153/column_11153_1.html">梁心帮办</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11154/column_11154_1.html">南海乡音</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11155/column_11155_1.html">有为对话</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11156/column_11156_1.html">市民议事厅</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/11157/column_11157_1.html">南海观察</A></LI></UL></DIV></DIV>
<DIV style="DISPLAY: none" id=con_one_6>
<DIV class=zi_dw_menu>
<UL>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/7860/column_7860_1.html">党务动态</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/7861/column_7861_1.html">通知公告</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/7962/column_7962_1.html">党委文件</A> | </LI>
<LI><A class=menu_c href="http://www.nhggzy.cn/cms/html/7964/column_7964_1.html">区
...全文
1221 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
闭包客 2018-08-09
  • 打赏
  • 举报
回复
xpath 是针对 xml 的查询语法,应用面会比较广泛,针对 html,肯定是 css 选择器最好用的。
闲游四疯 2018-08-08
  • 打赏
  • 举报
回复
HtmlAgilityPack.dll 有这个dll的 网上搜索下就好 C#专门处理 HTML代码解析提取的
xiaoxiangqing 2018-08-08
  • 打赏
  • 举报
回复
用第三方html类库解析
token不能为空 2018-08-08
  • 打赏
  • 举报
回复
这个库我用了之后感觉好难用,和网上的xpath语法有偏差
总感觉他的解析用起来很累
我现在还是用正则,反正都是定向抓取,写死就完了,用xpath其实也是写死
Anonymous477 2018-08-07
  • 打赏
  • 举报
回复
浏览器处理过的html是可能和代码获取的html不相同的。。。


var nodes = document.DocumentNode.SelectNodes("//*[@id=\"tab_3_1\"]/div[2]/table/tr");

foreach (var item in nodes)
{
//处理每个tr
}

多看看node的属性
xuzuning 2018-08-07
  • 打赏
  • 举报
回复
与其绞尽脑汁拼凑出一条不可靠的规则,倒不如用简单的规则多次匹配
筱玖 2018-08-07
  • 打赏
  • 举报
回复
因为还想获取它a标签里的href值
筱玖 2018-08-07
  • 打赏
  • 举报
回复
引用 14 楼 StratosBlue 的回复:
没用过Nuget吗?


首先感谢,按您的方法我已经取到td下的文本内容
然后我在谷歌右键Copy XPath出来的是这样://*[@id="10827"]/tbody/tr[7]/td[1]/a 我是放在a标签上右键的,但是运行时获取不到
xuzuning 2018-08-07
  • 打赏
  • 举报
回复
先匹配出指定的 table
然后在结果中匹配 td
Anonymous477 2018-08-07
  • 打赏
  • 举报
回复
没用过Nuget吗?

筱玖 2018-08-07
  • 打赏
  • 举报
回复
引用 12 楼 StratosBlue 的回复:
Nuget安装HtmlAgilityPack,然后用xpath来获取,不过xpath的用法可能还需要你去学习一下。。


var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html内容);

var node = document.DocumentNode.SelectSingleNode("//*[@id=\"tab_3_1\"]/div[2]/table");

额。。。。
尴尬的问一下,这个代码块是winfrom的么。。。。
我无法添加HtmlAgilityPack的引用呀
Anonymous477 2018-08-07
  • 打赏
  • 举报
回复
Nuget安装HtmlAgilityPack,然后用xpath来获取,不过xpath的用法可能还需要你去学习一下。。


var document = new HtmlAgilityPack.HtmlDocument();
document.LoadHtml(html内容);

var node = document.DocumentNode.SelectSingleNode("//*[@id=\"tab_3_1\"]/div[2]/table");
筱玖 2018-08-07
  • 打赏
  • 举报
回复
筱玖 2018-08-07
  • 打赏
  • 举报
回复
引用 9 楼 StratosBlue 的回复:
。。。。我的意思是。贴上网页地址,然后说一下你想拿哪些数据。。。

额,好吧,我理解错了
http://www.nhggzy.cn/cms/sites/nh_ggzy/jyh/jyxx_tdjy.jsp
这是url
想取得内容是图片里的这一块
Anonymous477 2018-08-07
  • 打赏
  • 举报
回复
。。。。我的意思是。贴上网页地址,然后说一下你想拿哪些数据。。。
qq14923349 2018-08-07
  • 打赏
  • 举报
回复
python吧 人生苦短
筱玖 2018-08-07
  • 打赏
  • 举报
回复
引用 6 楼 StratosBlue 的回复:
正则不好写的时候就需要解析html了。。。另外你应该贴url和你需要抓哪块,一堆html代码怎么看。。。

我是想把html全贴出来呢,不过不知道为啥贴不全。。。。。
这是我想爬的一段

<TABLE id=10827 class=nr_table border=0 cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR class=cona jQuery11240012181887898680743="1">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180803085600141356984/20180803085600141356984_1.html" target=_blank>TD2018(NH)WG0023南海区大沥镇黄岐黄海路西侧</A></TD>
<TD class=nr_c width=125>2018-08-03</TD></TR>
<TR class=cona jQuery11240012181887898680743="3">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180720085600200775857/20180720085600200775857_1.html" target=_blank>TD2018(NH)WG0022佛山市南海区大沥镇水头广佛路...</A></TD>
<TD class=nr_c width=125>2018-07-20</TD></TR>
<TR class=cona jQuery11240012181887898680743="4">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180704085600215570482/20180704085600215570482_1.html" target=_blank>TD2018(NH)WG0021佛山市南海区大沥镇盐步横江村...</A></TD>
<TD class=nr_c width=125>2018-07-04</TD></TR>
<TR class=cona jQuery11240012181887898680743="5">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180629085600156683539/20180629085600156683539_1.html" target=_blank>TD2018(NH)WG0019佛山市南海区里水镇沙涌下沙村...</A></TD>
<TD class=nr_c width=125>2018-06-29</TD></TR>
<TR class=cona jQuery11240012181887898680743="6">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180629085600659945655/20180629085600659945655_1.html" target=_blank>TD2018(NH)WG0020佛山市南海区西樵镇听音湖片区...</A></TD>
<TD class=nr_c width=125>2018-06-29</TD></TR>
<TR class=cona jQuery11240012181887898680743="7">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180626085600217846828/20180626085600217846828_1.html" target=_blank>TD2018(NH)WG0018佛山市南海区西樵镇听音湖片区...</A></TD>
<TD class=nr_c width=125>2018-06-26</TD></TR>
<TR class=cona jQuery11240012181887898680743="8">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180624085600163862754/20180624085600163862754_1.html" target=_blank>TD2018(NH)XG0001佛山市南海区桂城街道夏西社区...</A></TD>
<TD class=nr_c width=125>2018-06-24</TD></TR>
<TR class=cona jQuery11240012181887898680743="9">
<TD class=nr_l width=628><A href="http://www.nhggzy.cn/cms/html/10827/2018/20180620085600259720961/20180620085600259720961_1.html" target=_blank>TD2018(NH)WG0017佛山市南海区狮山镇小塘三环西...</A></TD>
<TD class=nr_c width=125>2018-06-20</TD></TR>
<TR>
Anonymous477 2018-08-07
  • 打赏
  • 举报
回复
正则不好写的时候就需要解析html了。。。另外你应该贴url和你需要抓哪块,一堆html代码怎么看。。。
筱玖 2018-08-07
  • 打赏
  • 举报
回复
引用 3 楼 qq_28194303 的回复:
在Python 中使用beautifulsoup爬一般的网页那叫一个爽,C#中也不离正则表达式吧。

我现在也是用的正则,但是现在做到的效果是爬取了整个页面的td下的内容,我想爬指定某一个table下的td内容
筱玖 2018-08-07
  • 打赏
  • 举报
回复
好像贴不出来,我去,
我说一下,就是html中有多页table,我需要取爬其中一个table下td的文本以及td下已有的a标签里的href值,但是现在就是可以做到爬全部的td下的内容(包括了其他table的td)
加载更多回复(3)

110,499

社区成员

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

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

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