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"); }
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") }); }
public override void Shutdown() { CacheData.Dispose(); SysDataManager.Dispose(); UserData.Dispose(); }