会员
周边
众包
新闻
博问
闪存
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
专注于.net
Adore .Net
博客园
首页
新随笔
联系
订阅
管理
使用HtmlAgilityPack批量抓取网页数据
相关软件点击下载
登录的处理。因为有些网页数据需要登陆后才能提取。这里要使用ieHTTPHeaders来提取登录时的提交信息。
抓取网页
HtmlAgilityPack.HtmlDocument htmlDoc;
if
(
!
string
.IsNullOrEmpty(登录URL))
{
htmlDoc
=
htmlWeb.Load(登录URL, 提交的用户验证信息, 获取数据的网页URL);
}
else
{
htmlDoc
=
htmlWeb.Load(获取数据的网页URL);
}
ArrayList list
=
new
ArrayList();
list.add(
"
//table/tr[1]/td
"
);
list.add(
"
//table/tr[2]/td
"
);
//
获取循环的节点的xpath,比如:
//
table/tr
HtmlNodeCollection repeatNodes
=
htmlDoc.DocumentNode.SelectNodes(
"
//table/tr
"
);
//
循环节点
foreach
(HtmlNode node
in
repeatNodes)
{
//
循环获取数据
foreach
(
string
dataPath
in
list)
{
HtmlNode dataNode
=
node.SelectSingleNode(list);
if
(dataNode
!=
null
)
{
string
text
=
dataNode.InnerText;
}
}
}
如果出现乱码,调整编码集为gb2312或者是utf-8
htmlWeb.DefaultEncoding
=
System.Text.Encoding.GetEncoding(strEncode);
Posted on
2009-05-24 15:57
hesen
阅读(
1080
) 评论(
1
)
编辑
收藏
举报
会员力量,点亮园子希望
刷新页面
返回顶部