• 图片采集


     

    前言

    只供个人技术交流,禁止传播

    有些没有用 的代码我懒的删除,你看不顺眼我无所谓

    还是担心有孩子误用,一共6000多张不同风格的美女图片,供大家编码累的时候休息方式活动眼球用,网址我放在评论区里面,没有下载豆子了,见谅

    如何 使用

    目标框架.netframe 4.7.1  不匹配的话自行修改;

    下载好后文件存放目录 "C:\Pic"

    有技术的2点 :

    1.找到子节点下面的子标签

    var objNodeList = node.SelectNodes("table//a");

    2.下载图片遇到htpps   任何证书都同意

    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

    源码部分

    /// <summary>
        ///  从网页上面下载图片
        ///  每一个网页保存到一个文件夹里面
        /// 
        /// </summary>
        public class Program
        {
            public static string m_strPath = "";
            //精华的美图  我喜欢所有的  我用服务器下载网速100M
            //string l_strDigestURL  = $"http://www..com/forum-index-fid-8-digest-1.htm";
            static void Main(string[] args)
            {
                m_strPath = "C:\Pic" + Guid.NewGuid();
                Directory.CreateDirectory(m_strPath);
                //测试以https开头的图片是否可以正常下载
                ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
                List<Task> l_listTask = new List<Task>();
                for (int i = 1; i <= 39; i++)
                {
                    try
                    {
                        string l_strMainURL = $"http://www..com/forum-index-fid-8-page-{i}.htm";
                        //从相关的DIV里面找到相关的网址列表
                        HtmlWeb htmlWeb = new HtmlWeb();
                        HtmlDocument htmlDocument = htmlWeb.Load(l_strMainURL);
    
                        //DIV的ID
                        string l_strDivName = "threadlist";
                        HtmlNode node = htmlDocument.GetElementbyId(l_strDivName);
    
                        //从DIV里面获取的列表地址 & 列表名称   用于建立文件夹
                        var objNodeList = node.SelectNodes("table//a");
                        GetImageHelper getImageHelper = new GetImageHelper();
    
                        foreach (var nodeDetail in objNodeList)
                        {
                            Task task = new Task(() =>
                            {  //过滤没有图片的网址
                                if (nodeDetail.InnerText.Contains("p"))
                                {
                                    //Console.WriteLine(nodeDetail.InnerText);
                                    //Console.WriteLine(nodeDetail.Attributes["href"].Value);
                                    GetImageHelper.GetImg(nodeDetail.Attributes["href"].Value, nodeDetail.InnerText);
                                }
                            });
                            l_listTask.Add(task);
                            task.Start();
                        }
                    }
                    catch (Exception e)
                    {
                        Logger.CreateErrorLog(e, "");
    
                    }
                }
                Task.WaitAll(l_listTask.ToArray());
                Console.WriteLine("已经全部下载完毕..." + DateTime.Now);
                Console.ReadKey();
            }
            private static bool CheckValidationResult(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors errors)
            {   // 总是接受 认证平台 服务器的证书
                return true;
            }
    
        }
    View Code

    完整源码下载地址:

    https://download.csdn.net/download/maanshan1/12046838

    完整小工具下载地址:

    https://download.csdn.net/download/maanshan1/12092170

  • 相关阅读:
    程序性能优化之布局检测与优化(二)下篇
    程序性能优化之布局检测与优化(二)上篇
    程序性能优化之启动速度与执行效率优化(一)下篇
    程序性能优化之启动速度与执行效率优化(一)上篇
    【前端图表】echarts散点图鼠标划过散点显示信息
    【干货】前端开发者最常用的六款IDE
    全网最全的小程序学习资料和文章,看这篇就够了
    Jquery+Ajax+Bootstrap Paginator实现分页的拼接
    推荐一款在线工具-程序员的工具箱
    推荐一款稳定快速免费的前端开源项目 CDN 加速服务
  • 原文地址:https://www.cnblogs.com/maanshancss/p/12082708.html
Copyright © 2020-2023  润新知