C# Html 信息采集(标题和链接)

isaced 2010-07-10 04:54:35
这有一段html代码:

<img src="http://images.net/dz7/extend/index_threads/picli.gif" border="0" /><a href="thread-2902-1-1.html" target="_blank" class="hidden">标题1</a>
</div><div class="index_item">
<img src="http://images.net/dz7/extend/index_threads/picli.gif" border="0" /><a href="thread-2829-1-1.html" target="_blank" class="hidden">标题2</a>
</div><div class="index_item">
<img src="http://images.net/dz7/extend/index_threads/picli.gif" border="0" /><a href="thread-2771-1-1.html" target="_blank" class="hidden">标题3</a>



要在里面取出:

1.这3个的链接,如(thread-2829-1-1.html)
2.这3个标题,如(标题1)



取出来用一个数组放链接:["thread-2902-1-1.html"],["thread-2829-1-1.html"],["thread-2771-1-1.html"]

再用一个数组放标题,都是string的:["标题1"],["标题2"]["标题3"]




代码要怎么写??
...全文
128 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
robin521 2010-07-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hzzasdf 的回复:]
这个貌似用javascript比较简单,因为可以直接操作html元素:
function getLinks()
{
var links = document.getElementsByTagName("A");
for (var i = 0; i < links.length; i++)
{
alert("连接:" + links[i].href + "; 标题:" + links[i……
[/Quote]
嗯,我顶这个。
  • 打赏
  • 举报
回复
这个貌似用javascript比较简单,因为可以直接操作html元素:
function getLinks()
{
var links = document.getElementsByTagName("A");
for (var i = 0; i < links.length; i++)
{
alert("连接:" + links[i].href + "; 标题:" + links[i].firstChild.toString());
}
}

<input type="button" value="试验" id="test" onclick="getLinks()" />
如果是动态抓取,可以利用webbrowser控件里:
mywebbrowser.Document.GetElementById("test").InvokeMember("click");
amy_guoguo 2010-07-11
  • 打赏
  • 举报
回复
学习!!!
wuyq11 2010-07-10
  • 打赏
  • 举报
回复
MatchCollection mc= Regex.Matches(str, @" <a[^> ]*href=([ ' " "]?)(? <url> [^ ' " "> \s]*)\1?[^> ]*> (? <text> [^ <]*) </a> ", RegexOptions.IgnoreCase);
foreach (Match m in mc)
{
Response.Write(m.Groups[ "url "].Value);
Response.Write(m.Groups[ "text "].Value);
}
MatchCollection mc = Regex.Matches(Str, @"(?i)<a(?>(?:(?!href=)[^>])*)href=(['""]?)(?<url>[^""'\s>]*)\1[^>]*>(?<text>[\s\S]*?)</a>");
兔子-顾问 2010-07-10
  • 打赏
  • 举报
回复
        private static void TestRegex02()
{
string html = @"<img src=""http://images.net/dz7/extend/index_threads/picli.gif"" border=""0"" /><a href=""thread-2902-1-1.html"" target=""_blank"" class=""hidden"">标题1</a>
</div><div class=""index_item"">
<img src=""http://images.net/dz7/extend/index_threads/picli.gif"" border=""0"" /><a href=""thread-2829-1-1.html"" target=""_blank"" class=""hidden"">标题2</a>
</div><div class=""index_item"">
<img src=""http://images.net/dz7/extend/index_threads/picli.gif"" border=""0"" /><a href=""thread-2771-1-1.html"" target=""_blank"" class=""hidden"">标题3</a>

";
MatchCollection mc = Regex.Matches(html, @"(?is)<a href=(['""]?)(?<url>[^'"" ]+)\1[^>]*>(?<text>.+?)</a>");
foreach (Match m in mc)
{
Console.WriteLine("url:" + m.Groups["url"].Value);
Console.WriteLine("text:" + Regex.Replace(m.Groups["text"].Value, "<[^<>]*>", ""));//去掉<font>之类的
}
}

不做解释注释了。你自己看看把。

110,537

社区成员

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

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

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