示例#1
0
        private void addbrand(string pid)
        {
            string tempurl = string.Format("http://www.nb77.cn/index.php?mod=user&ajax=1&bid={0}", pid);
            string page    = HtmlAnalysis.Gethtmlcode("http://www.nb77.cn/static/css/dealer/dealer_user.css");
            // var str1 = "<option value='1' >A-奥迪</option><option value='19777' >A-奥驰</option><option value='19780' >A-奥玲</option><option value='957' >A-阿斯顿·马丁</option><option value='771' >B-奔驰Smart</option><option value='190' >B-保时捷</option><option value='469' >B-宾利</option><option value='144' >B-标致</option><option value='302' >B-宝骏</option><option value='462' >B-北汽</option><option value='105' >B-比亚迪</option><option value='99' >B-奔驰</option><option value='773' >B-奔腾</option><option value='78' >B-本田</option><option value='5' >B-宝马</option><option value='779' >B-宝马MINI</option><option value='34' >B-别克</option><option value='186' >C-长安</option><option value='258' >C-昌河</option><option value='254' >C-长丰</option><option value='116' >C-长城</option><option value='310' >D-大迪</option><option value='424' >D-道奇</option><option value='19782' >D-大运</option><option value='658' >D-大发</option><option value='669' >D-东南</option><option value='224' >D-东风</option><option value='192' >D-大宇</option><option value='15' >D-大众</option><option value='53' >F-福特</option><option value='64' >F-丰田</option><option value='360' >F-福迪</option><option value='484' >F-法拉利</option><option value='244' >F-福田</option><option value='160' >F-菲亚特</option><option value='769' >G-GMC</option><option value='329' >G-广汽</option><option value='170' >H-华普</option><option value='443' >H-汇众</option><option value='485' >H-悍马</option><option value='363' >H-海马</option><option value='147' >H-哈飞</option><option value='685' >H-华泰</option><option value='385' >H-黑豹</option><option value='645' >H-红旗</option><option value='691' >J-金龙</option><option value='153' >J-吉利</option><option value='19769' >J-解放</option><option value='289' >J-江淮</option><option value='194' >J-吉普</option><option value='535' >J-捷豹</option><option value='841' >J-吉利帝豪</option><option value='723' >J-吉利上海英伦</option><option value='654' >J-金杯</option><option value='233' >J-江铃</option><option value='393' >J-吉奥</option><option value='175' >J-吉利全球鹰</option><option value='774' >K-开瑞</option><option value='632' >K-凯迪拉克</option><option value='196' >K-克莱斯勒</option><option value='19778' >K-凯马</option><option value='547' >L-路虎</option><option value='543' >L-林肯</option><option value='554' >L-兰博基尼</option><option value='405' >L-力帆</option><option value='724' >L-铃木</option><option value='648' >L-陆风</option><option value='374' >L-莲花</option><option value='770' >L-劳斯莱斯</option><option value='213' >L-雷诺</option><option value='198' >L-雷克萨斯</option><option value='776' >M-迈巴赫</option><option value='572' >M-玛莎拉蒂</option><option value='355' >M-名爵</option><option value='57' >M-马自达</option><option value='85' >N-尼桑</option><option value='111' >N-南汽</option><option value='408' >N-纳智捷</option><option value='576' >O-讴歌</option><option value='580' >O-欧宝</option><option value='165' >Q-奇瑞</option><option value='131' >Q-起亚</option><option value='978' >Q-启辰</option><option value='216' >R-荣威</option><option value='863' >R-瑞麒</option><option value='206' >S-斯巴鲁</option><option value='203' >S-萨博</option><option value='19771' >S-时代</option><option value='217' >S-斯柯达</option><option value='19754' >S-上汽大通</option><option value='376' >S-曙光</option><option value='597' >S-双龙</option><option value='665' >S-双环</option><option value='138' >S-三菱</option><option value='19781' >T-唐骏</option><option value='19731' >T-特斯拉</option><option value='209' >W-沃尔沃</option><option value='615' >W-五十铃</option><option value='370' >W-威麟</option><option value='182' >W-五菱</option><option value='341' >W-万丰</option><option value='454' >X-夏利</option><option value='47' >X-现代</option><option value='123' >X-雪铁龙</option><option value='501' >X-雪佛兰</option><option value='389' >y-依维柯</option><option value='346' >y-一汽</option><option value='19773' >Y-跃进</option><option value='452' >y-永源</option><option value='19779' >Y-跃进</option><option value='607' >y-英菲尼迪</option><option value='325' >Z-中顺</option><option value='327' >Z-众泰</option><option value='19776' >Z-重汽</option><option value='331' >Z-中兴</option><option value='226' >Z-中华</option>";
            List <BandInfo> bandlist = new List <BandInfo>();
            var             list     = RegexServer.RegGroupCollection(page, "<option value=(?<x>\\d+)>(?<y>.*?)</option>");

            if (list == null)
            {
                return;
            }
            for (int i = 0; i < list.Count; i++)
            {
                var      key   = list[i].Groups["x"].Value;
                var      bname = list[i].Groups["y"].Value;
                BandInfo brand = new BandInfo
                {
                    FirstChart     = "",
                    BrandName      = bname,
                    ParentBrandNum = "bid_" + pid,
                    BrandNum       = key,
                    DisplayName    = bname,
                    CreateTime     = DateTime.Now
                };
                bandlist.Add(brand);
            }

            new BandInfoDb().AddBandInfo(bandlist);
        }
示例#2
0
 /// <summary>
 /// 提取各本书的首页信息
 /// </summary>
 private void ExtractingHomePageData()
 {
     OriginHtml.RemoveAll(p => p == string.Empty || p == null);
     ParallelLoopResult result = Parallel.ForEach(OriginHtml.ToArray(), (htmlContent, state, i) =>
     {
         NovelList[(int)i] = HtmlAnalysis.AnalysisHomePage(NovelList[(int)i], htmlContent);
     });
 }
示例#3
0
 /// <summary>
 /// 提取总榜网页信息
 /// </summary>
 private void ExtractingTotalRankData()
 {
     ParallelLoopResult result = Parallel.ForEach(OriginHtml.ToArray(), (htmlContent, state, i) =>
     {
         foreach (var item in HtmlAnalysis.AnalysisTotalRank(htmlContent))
         {
             NovelList.Add(item);
         }
     });
 }
示例#4
0
        private void ExtractingData()
        {
            var Content = string.Empty;
            int index   = 0;

            foreach (var htmlContent in OriginHtml)
            {
                Content += book.Sections[index].Name + Environment.NewLine + HtmlAnalysis.AnalysisSectionContent(htmlContent) + Environment.NewLine;
                index++;
            }
            File.WriteAllText(path, Content);
            MessageBox.Show("保存成功!");
        }
示例#5
0
        private void addBrandType(AutoHomeBrand brand)
        {
            string url    = string.Format("http://m.che168.com/carlist/FilterSeries.aspx?brandid={0}&prov=0&safe=0&v=20170302184056", brand.CountryCode.Replace("brandid=", ""));
            var    page   = HtmlAnalysis.Gethtmlcode(url);
            var    brands = new List <AutoHomeBrand>();
            var    ulList = RegexServer.RegGroupCollection(page, "</ul>(?<x>.*?)</ul>");
            var    db     = new BrandFullDb();

            foreach (var ul in ulList)
            {
                var cartype = RegexServer.RegGroupsX <string>(ul.ToString(), "<h3>(?<x>.*?)</h3>").Trim();

                var lilist = RegexServer.RegGroupCollection(ul.ToString(), "<li(?<x>.*?)</li>");

                foreach (var li in lilist)
                {
                    try
                    {
                        var content = li.ToString();

                        var           pinyin    = RegexServer.RegGroupsX <string>(content, "data-pinyin=\"(?<x>.*?)\"");
                        AutoHomeBrand brandType = new AutoHomeBrand
                        {
                            Pid     = brand.Id,
                            Level   = 2,
                            Hot     = 0,
                            CarType = cartype,
                            Letter  = pinyin.Length > 0 ? pinyin.Substring(0, 1) : "",
                            Pinyin  = pinyin,
                            Title   = RegexServer.RegGroupsX <string>(content, "class=\"carseries\".*?>(?<x>.*?)</span>").Trim()
                        };
                        brands.Add(brandType);
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                }
            }
            db.AddBandInfo(brands);
        }
示例#6
0
        private void HomePageDatadownload()
        {
            //数据初始化
            StrartTime      = DateTime.Now;
            OriginHtml      = new List <string>();
            IsWorkNotRuning = false;
            Worker          = new BackgroundWorker
            {
                WorkerReportsProgress      = true, //支持进度信息获取
                WorkerSupportsCancellation = true  //支持任务终止
            };

            //信息准备
            links  = NovelList.Count;
            IPList = HtmlAnalysis.GetIPList(HtmlCrawler.GetHtmlContent(IPNet));


            Worker.DoWork += Work_DownloadHomePage;
            Worker.RunWorkerAsync(links);
            Worker.ProgressChanged    += Worker_DownloadHomePageProgressChanged;
            Worker.RunWorkerCompleted += Worker_RunDownloadHomePageCompleted;
        }
示例#7
0
        public ReadWndViewModel(object data)
        {
            Book   = data as Novel;
            Reader = (Application.Current.MainWindow.DataContext as StartWinodwViewModel).Reader;

            GetSectionLinks(Book);

            SelectItemChangedCommand = new DelegateCommand <object>((p) =>
            {
                if (p is ListView listView)
                {
                    var htmlContent = HtmlCrawler.GetHtmlContent(Book.Sections[listView.SelectedIndex].Html);
                    CurrentContent  = HtmlAnalysis.AnalysisSectionContent(htmlContent);
                }
            });

            DownloadSectionsCommand = new DelegateCommand(() =>
            {
                SaveFileDialog dialog = new SaveFileDialog
                {
                    Filter     = "txt files(*.txt)|*.txt|word files(*.doc)|*.doc|All files(*.*)|*.*",
                    FileName   = Book.Name,
                    DefaultExt = "txt"
                };
                if (dialog.ShowDialog() == true)
                {
                    path = dialog.FileName;
                    Datadownload();
                }
            });

            int index = 0;

            if (Reader.Level >= 0)
            {
                foreach (var item in Reader.Books)
                {
                    if (Book.Id == item.BookID)
                    {
                        index = item.SectionIndex;
                        break;
                    }
                }
            }

            CurrentContent = HtmlAnalysis.AnalysisSectionContent(HtmlCrawler.GetHtmlContent(Book.Sections[(index - 1) >= 0 ? (index - 1) : 0].Html));

            SysFontFamilies = Fonts.SystemFontFamilies;

            WinCloseCommand = new DelegateCommand <object>((p) =>
            {
                (p as Window).Close();
                Application.Current.MainWindow.Show();
            });

            WinClosingCommand = new DelegateCommand <object>((p) =>
            {
                //若非访客模式
                if (reader.Level >= 0)
                {
                    //若书架上已存在该书 则更新本次阅读进度
                    if (index > 0)
                    {
                        if ((p as ListView).SelectedIndex < 0)
                        {
                            (p as ListView).SelectedIndex = index - 1;
                        }
                        Reader.Books.Find(b => b.BookID == Book.Id).SectionIndex = (p as ListView).SelectedIndex + 1;
                        ElasticSearch.ElasticHelper.Insert(Reader);
                    }
                    //若书架尚不存在此书 则新添加入列表
                    else
                    {
                        if (MessageBox.Show("是否加入书架?") == MessageBoxResult.OK)
                        {
                            if ((p as ListView).SelectedIndex < 0)
                            {
                                (p as ListView).SelectedIndex = index - 1;
                            }

                            Reader.Books.Add(new Model.Book()
                            {
                                BookID       = Book.Id,
                                SectionIndex = (p as ListView).SelectedIndex + 1
                            });
                            ElasticSearch.ElasticHelper.Insert(Reader);
                        }
                    }
                }
            });
        }
示例#8
0
 private void GetSectionLinks(Novel novel)
 {
     novel.Sections = HtmlAnalysis.AnalysisDirectory(HtmlCrawler.GetHtmlContent(new System.Uri(novel.DirectoryUri)));
 }