图片采集

 

前言

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

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

还是担心有孩子误用,一共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

原文地址:https://www.cnblogs.com/maanshancss/p/12082708.html