Example #1
0
        /// <summary>
        /// 创建下载器
        /// </summary>
        /// <param name="type">下载器类型</param>
        /// <param name="start">开始时间</param>
        /// <param name="end">结束时间</param>
        /// <returns></returns>
        public static IDownloader CreateDownloader(NewsPaperTypeEnum type, DateTime start, DateTime end)
        {
            IDownloader downloader = null;

            switch (type)
            {
            case NewsPaperTypeEnum.ChinaTeacher:
                downloader = new TeacherDownLoader(start, end);
                break;

            case NewsPaperTypeEnum.ChinaEducation:
                downloader = new EducationDownLoader(start, end);
                break;
            }

            return(downloader);
        }
        private List <string> GetFileNames(DateTime dateTime, NewsPaperTypeEnum type = NewsPaperTypeEnum.ChinaTeacher)
        {
            List <string> fileNames = new List <string>();

            for (int i = 1; i <= 30; i++)
            {
                if (type == NewsPaperTypeEnum.ChinaTeacher)
                {
                    fileNames.Add($"ZGJSB{i.ToString().PadLeft(2, '0')}B{dateTime.ToString("yyyyMMdd")}C.pdf");
                }
                else
                {
                    fileNames.Add($"ZGJYB{dateTime.ToString("yyyyMMdd")}{i.ToString().PadLeft(2, '0')}.pdf");
                }
            }
            return(fileNames);
        }
        private List <DateTime> GetTerms(DateTime start, DateTime end, NewsPaperTypeEnum type = NewsPaperTypeEnum.ChinaTeacher, List <DateTime> hasDownloadfiles = null)
        {
            List <DateTime> listTerm = new List <DateTime>()
            {
            };

            string url = string.Empty;

            if (type == NewsPaperTypeEnum.ChinaTeacher)
            {
                url = "http://www.chinateacher.com.cn/zgjsb/html/{0}/node_22.htm";
            }
            else if (type == NewsPaperTypeEnum.ChinaEducation)
            {
                url = "http://paper.jyb.cn/zgjyb/html/{0}/node_2.htm";
            }

            for (DateTime i = start; i <= end; i = i.AddDays(1))
            {
                if (hasDownloadfiles.Contains(i))
                {
                    continue;
                }
                string requestUrl = string.Format(url, i.ToString("yyyy-MM/dd"));
                try
                {
                    var response = checkClient.GetAsync(requestUrl).GetAwaiter().GetResult();
                    if (response.StatusCode == System.Net.HttpStatusCode.OK)
                    {
                        listTerm.Add(i);
                    }
                }
                catch (Exception)
                {
                    continue;
                }
            }
            return(listTerm);
        }