C#版网络爬虫
本人是菜鸟,C#懂得可怜,学校要做一个C#版或者Java版的网络爬虫目标是捕获一个网站里面的用户提出来的问题与回答,
一列一列的爬下来,存入自己的数据库
各位大侠们帮帮忙 对你们说小菜一碟!!!~_~ --------------------编程问答-------------------- 顶顶....... --------------------编程问答-------------------- lz做出来就是菜牛了~哈哈~lz找点网页抓取源码 --------------------编程问答-------------------- 这个就是从入口地址拿源码,根据源码做你要做的事,之后用正则从此源码中提取url。循环继续 --------------------编程问答-------------------- 应该有吧。。。。。。 --------------------编程问答-------------------- 正则表达式提取HTML源代码。 --------------------编程问答-------------------- 不论你如何爬,总是有规则的。最简单的办法就是用webbrower,写好抓取步骤,不过前提是你必须懂得基本web程序 --------------------编程问答-------------------- HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
stream = myHttpWebResponse.GetResponseStream();
然后你自己分析一下内容就搞定了 --------------------编程问答-------------------- 参考:提取网页全部链接
//前台:
<div>
<asp:TextBox ID="TextBox1" runat="server" Width="481px"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提取" />
<br />
<asp:TextBox ID="TextBox2" runat="server" Height="304px" TextMode="MultiLine" Width="524px"></asp:TextBox>
</div>
//后台:
protected void Button1_Click(object sender, EventArgs e)
{
TextBox2.Text = "";
string web_url = this.TextBox1.Text string all_code = "";
HttpWebRequest all_codeRequest = (HttpWebRequest)WebRequest.Create(web_url);
WebResponse all_codeResponse = all_codeRequest.GetResponse();
StreamReader the_Reader = new StreamReader(all_codeResponse.GetResponseStream());
all_code = the_Reader.ReadToEnd();
the_Reader.Close();
ArrayList my_list = new ArrayList();
string p = @"http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
Regex re = new Regex(p, RegexOptions.IgnoreCase);
MatchCollection mc = re.Matches(all_code);
for (int i = 0; i <= mc.Count - 1; i++)
{
bool _foo = false;
string name = mc[i].ToString();
foreach (string list in my_list)
{
if (name == list)
{
_foo = true;
break;
}
}//过滤
if (!_foo)
{
TextBox2.Text += name + "\n";
}
}
}
--------------------编程问答-------------------- up --------------------编程问答-------------------- 好 --------------------编程问答-------------------- up --------------------编程问答-------------------- 來學習 --------------------编程问答-------------------- 小得不能再小的小程序。
你要先了解http原理,懂得用一种或者两种http调试工具来分析http消息数据,在稍微懂点正则用法(但是可抄袭的代码确实很多),看上去没什么技术要求。 --------------------编程问答-------------------- 这种东西属于技巧性的,而不是工程性的。
这种东西对那些喜欢使用调试、测试工具的人,一边玩着一边就做出来了(正规了反而费时间)。而对那些只在“培训学校”里学过编程的人,可能感觉很神秘。 --------------------编程问答-------------------- 正则式截取源码,就一个指定网站的,还是很好搞 --------------------编程问答-------------------- 下面链接就是一个c#写的网络爬虫,上面是翻译版 ,下面是英文原版
http://blog.csdn.net/wangkun9999/archive/2007/05/02/1594496.aspx
http://www.codeproject.com/cs/internet/Crawler.asp
另外,爬虫抓下来的东西要进行分析是必然的了,但c#中好像没有HTML解析器,特别是对那种不太规范的HTML,这里是一些c#解析HTML的资料。
http://www.codeproject.com/csharp/html2xhtmlcleaner.asp
http://www.pcxy.net/Article/netprogramme/xml/Article_36767.html
http://www.cnblogs.com/dragon/archive/2006/12/06/174946.html
--------------------编程问答-------------------- 可用webclienet --------------------编程问答-------------------- 8楼的思路,可满足你的需要,最好自己动动手,多调试调试! --------------------编程问答-------------------- 真给力,总算找到一个简单的! --------------------编程问答--------------------
P哥又在批评人了 呵呵
补充:.NET技术 , C#