Ejemplo n.º 1
0
 public void StopVisit()
 {
     FiddlerApplication.AfterSessionComplete -= FiddlerApplicationAfterSessionComplete;
     FiddlerApplication.Shutdown();
     if (CanSave && Documents.Count > 0)
     {
         SysDataManager.AddDataCollection(Documents.Select(d => d.DictSerialize(Scenario.Other)), "爬虫记录");
     }
     IsRunning = FiddlerApplication.IsStarted();
     OnPropertyChanged("IsRunning");
 }
Ejemplo n.º 2
0
        public SmartCrawler()
        {
            Http                 = new HttpItem();
            CrawlItems           = new ObservableCollection <CrawlItem>();
            helper               = new HttpHelper();
            URL                  = "";
            HtmlDoc              = new HtmlDocument();
            SelectText           = "";
            IsMultiData          = ScriptWorkMode.List;
            IsAttribute          = true;
            URL                  = "www.cnblogs.com";
            ShareCookie          = new TextEditSelector();
            ShareCookie.GetItems = AppHelper.GetAllCrawlerNames(null);
            Commands2            = CommandBuilder.GetCommands(
                this,
                new[]
            {
                new Command(GlobalHelper.Get("key_302"), obj => AddNewItem(),
                            obj =>
                            string.IsNullOrEmpty(SelectName) == false && string.IsNullOrEmpty(SelectXPath) == false,
                            "add"),
                new Command(GlobalHelper.Get("search"), obj => GetXPathAsync(),
                            obj =>
                            currentXPaths != null, "magnify"),
                new Command(GlobalHelper.Get("feellucky"),
                            obj => FeelLucky(),
                            obj => IsMultiData != ScriptWorkMode.NoTransform && isBusy == false, "smiley_happy"
                            ),
                new Command(GlobalHelper.Get("key_624"), obj =>
                {
                    if (!(CrawlItems.Count > 0).SafeCheck(GlobalHelper.Get("key_625")))
                    {
                        return;
                    }

                    if (IsMultiData == ScriptWorkMode.List && CrawlItems.Count < 2)
                    {
                        MessageBox.Show(GlobalHelper.Get("key_626"), GlobalHelper.Get("key_99"));
                        return;
                    }
                    if (string.IsNullOrEmpty(this.URLHTML))
                    {
                        this.VisitUrlAsync();
                    }

                    var datas =
                        HtmlDoc.DocumentNode.GetDataFromXPath(CrawlItems, IsMultiData, RootXPath, RootFormat).Take(20)
                        .ToList();
                    var view = PluginProvider.GetObjectInstance <IDataViewer>(GlobalHelper.Get("key_230"));

                    var r = view.SetCurrentView(datas);
                    ControlExtended.DockableManager.AddDockAbleContent(
                        FrmState.Custom, r, GlobalHelper.Get("key_627"));

                    var rootPath =
                        XPath.GetMaxCompareXPath(CrawlItems.Select(d => d.XPath));
                    if (datas.Count > 0 && MessageBox.Show(GlobalHelper.Get("is_save_to_tables"), GlobalHelper.Get("key_99"), MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        SysDataManager.AddDataCollection(datas,
                                                         GlobalHelper.Get("key_624") + "_" + DateTime.Now.ToShortTimeString());
                    }
                    if (datas.Count > 1 && string.IsNullOrEmpty(RootXPath) && rootPath.Length > 0 &&
                        IsMultiData == ScriptWorkMode.List &&
                        MessageBox.Show(string.Format(GlobalHelper.Get("key_628"), rootPath), GlobalHelper.Get("key_99"),
                                        MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                    {
                        RootXPath  = rootPath;
                        RootFormat = SelectorFormat.XPath;
                        HtmlDoc.CompileCrawItems(CrawlItems);
                        OnPropertyChanged("RootXPath");
                    }
                }, icon: "page_search")
            });
        }
Ejemplo n.º 3
0
 public override void Shutdown()
 {
     CacheData.Dispose();
     SysDataManager.Dispose();
     UserData.Dispose();
 }