• 关于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   大家一起成长,一起学习

  • 相关阅读:
    C#中线程安全的单例模式
    分布式服务和库表设计模式详解
    通俗易懂的讲解下Java注解
    MEF框架使用总结
    Docker:四、Docker进阶 Windows Docker IIS 部署
    Docker:三、深入Docker容器&Asp.net发版
    Docker:二、开始部署第一个Asp.net应用
    Docker:一、开始部署第一个Asp.net应用
    Docker:常见命令
    .net 中的 StringBuilder 和 TextWriter 区别
  • 原文地址:https://www.cnblogs.com/dxqNet/p/6003008.html
Copyright © 2020-2023  润新知