关于 c# .Net 爬虫
刚开始听到爬虫这两个字眼的时候感觉挺稀奇的,之前并没有接触过爬虫,正好这会手上没事,于是便百度了一下。
1.网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。
当然了,这个解释很清晰,也很高尚,说到底,爬虫就是用来获取网页信息的!
2.有点门路了,于是我就自己写了一段代码
////创建http请求 获取http参数
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
////请求方式
req.Method = "GET";
////接收的内容 这里接收网页的信息
req.Accept = "text/html";
//用户代理
req.UserAgent = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)";
string html = null;
////接收请求结果流
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
using (StreamReader reader = new StreamReader(res.GetResponseStream()))
{
////读完
html = reader.ReadToEnd();
}
3.没错就是http请求,获取到页面的html所有代码信息,有了这些信息,我就可以进行下一步操作了,(我想爬一下网页上的图片,于是看了一下网页代码)
4.大家发现什么了吗,现在开始下一步操作,解析。。。。
private static string[] GetLinks(string html)
{
const string pattern = @"https*://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?";
Regex r = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection m = r.Matches(html);
string[] links = new string[m.Count];
for (int i = 0; i < m.Count; i++)
{
links[i] = m[i].ToString();
}
return links;
}
5.恩,正则匹配我可以那到所有此站点的相关链接
6.当然了,链接仅仅是图片的,css js 网页什么的都是有的,好的 再过滤一下。
if((url.Contains(".jpg") || url.Contains(".gif")
|| url.Contains(".png")))
{
HttpWebRequest httpHelper = (HttpWebRequest)WebRequest.Create(url);
HttpWebResponse httpResponse = (HttpWebResponse)httpHelper.GetResponse();
try
{
this.Invoke((MethodInvoker)(() =>
{
using (Stream sr = httpResponse.GetResponseStream())
{
imageBox.Image = Image.FromStream(sr);
}
}));
}
catch (Exception)
{
}
Thread.Sleep(500);
return false;
}
7.这里我把图片的过滤了出来同时给解析了出来,到这里 你看懂了么。
我们会把当前页面的所有相关图片都给扫出来,这次我们就浅谈到这里.....有兴趣的可以加我的qq:759697338 大家一起成长,一起学习