public override List <SpiderProxyUriEntity> GetProxyEntities <T>(T reader) { var htmlDocument = HtmlTool.LoadFromTextReader(reader); if (htmlDocument == null) { return(null); } return(GetProxyEntities(htmlDocument)); }
public override List <SpiderProxyUriEntity> GetProxyEntities(string response) { var htmlDocument = HtmlTool.LoadFromText(response); if (htmlDocument == null) { return(null); } return(GetProxyEntities(htmlDocument)); }
public VPOSClient(string apiUrl, string apiResultKey, string startKey, string shopId, string redirectUrl) { _encoder = new MacEncoder(); _restClient = new RestClient(15); _htmlTool = new HtmlTool(); _urlAPI = apiUrl; _apiResultKey = apiResultKey; _startKey = startKey; _shopId = shopId; _urlRedirect = redirectUrl; }
public void GetImageFromUrl(string pUrl) { HtmlTool ahHtmlTool = new HtmlTool(); string url = pUrl; string result = ""; var listImageLink = ahHtmlTool.FetchLinksFromSource(url); DataTable dt = new DataTable(); dt.Columns.Add("link"); foreach (var alink in listImageLink) { dt.Rows.Add(alink); } dtlListImage.DataSource = dt; dtlListImage.DataBind(); }
private void OnExecuteSearchCommand() { SearchResults.Clear(); Metas.Clear(); Task.Factory.StartNew(() => { var result = new HtmlWeb().Load(string.Format(Url, QueryString)); //var nodes = result.DocumentNode.SelectNodes("//html//body//div[@class='g']").Select(r => r.InnerHtml).Take(10); //SearchResults.Clear(); //foreach (var node in nodes) //{ // SearchResults.Add(node); //} // extract links var searchResultCount = 0; foreach (var link in result.DocumentNode.SelectNodes("//a[@href]")) { var hrefValue = link.GetAttributeValue("href", string.Empty); if (hrefValue.ToUpper().Contains("GOOGLE") || !hrefValue.Contains("/url?q=") || !hrefValue.ToUpper().Contains("HTTP://")) continue; var index = hrefValue.IndexOf("&", StringComparison.Ordinal); if (index <= 0) continue; hrefValue = hrefValue.Substring(0, index); var searchResultUrl = hrefValue.Replace("/url?q=", ""); if (searchResultCount == 20) continue; searchResultCount++; _dispatcher.Invoke(() => { SearchResults.Add(searchResultUrl); }, DispatcherPriority.Normal); } Parallel.ForEach(SearchResults, (c) => { var meta = LoadMeta(c); HtmlTool.FetchOg(c); _dispatcher.Invoke(() => { Metas.Add(meta); }); }); }); }
public void getImageFromUrl(string pUrl) { HtmlTool ahHtmlTool = new HtmlTool(); string url = pUrl; string result = ""; var listImageLink = ahHtmlTool.FetchLinksFromSource(url); int i = 0, j = 0; foreach (var alink in listImageLink) { j++; i++; if (j == 1) { result += "<div class='box1'>"; } else if (j == 5) { result += "<div class='clear'></div>"; result += "</div>"; j = 0; } else { result += "<div class='col_1_of_single1 span_1_of_single1'>"; result += "<div class='view1 view-fifth1'>"; result += "<div class='top_box'>"; result += "<div class='m_2'>"; result += "<input class='second' name='option2' type='checkbox' id='" + i + "' value='" + alink + "' />"; result += "<label class='label2' for='" + i + "'>Choose image</label>"; result += "</div>"; result += " <div class='grid_img'><div class='css3'>"; result += "<img src='" + alink + "' alt='' /><br /><input type='text' value='" + alink + "' />"; result += " </div> </div> </div> </div> </div>"; } } if (listImageLink.Count % 4 != 0) { result += "<div class='clear'></div>"; result += "</div>"; } lblResult.Text = result; }
public void GetImageFromUrl(string pUrl) { HtmlTool ahHtmlTool = new HtmlTool(); if (pUrl.Contains("www.cars.com")) { pUrl = pUrl.Replace("overview", "photo"); } string url = pUrl; string result = ""; var listImageLink = ahHtmlTool.FetchLinksFromSource(url); DataTable dt = new DataTable(); dt.Columns.Add("link"); foreach (var alink in listImageLink) { dt.Rows.Add(alink); } dtlListImage.DataSource = dt; dtlListImage.DataBind(); }
/// <summary> /// 初始化autoMapper 映射 /// </summary> public static void MapperConfigIntit() { Mapper.Initialize(cfg => { cfg.CreateMap <User, UserDto>().ForMember(dto => dto.CreateDate, opt => opt.MapFrom(src => src.CreateDate.ToString(DateTimeFormString))); cfg.CreateMap <Category, CategoryDto>(); cfg.CreateMap <Blog, BlogDto>().ForMember(dto => dto.CreateDate, opt => opt.MapFrom(src => src.CreateDate.ToString(DateTimeFormString))) .ForMember(dto => dto.BodyAbs, opt => opt.MapFrom(src => HtmlTool.ReplaceHtmlTag(src.Body, 200))); cfg.CreateMap <BlogComment, BlogCommentDto>().ForMember(dto => dto.PostDate, opt => opt.MapFrom(src => src.PostDate.ToString(DateTimeFormString))); cfg.CreateMap <News, NewsDto>().ForMember(dto => dto.CreateDate, opt => opt.MapFrom(src => src.CreateDate.ToString(DateTimeFormString))) .ForMember(dto => dto.BodyAbs, opt => opt.MapFrom(src => HtmlTool.ReplaceHtmlTag(src.Body, 200))); cfg.CreateMap <NewsComment, NewsCommentDto>().ForMember(dto => dto.PostDate, opt => opt.MapFrom(src => src.PostDate.ToString(DateTimeFormString))); cfg.CreateMap <OpenSource, OpenSourceDto>().ForMember(dto => dto.CreateDate, opt => opt.MapFrom(src => src.CreateDate.ToString(DateTimeFormString))); cfg.CreateMap <Note, NoteDto>().ForMember(dto => dto.CreateDate, opt => opt.MapFrom(src => src.CreateDate.ToString(DateTimeFormString))); }); }
public ActionResult Index(int pageindex = 1) { //获取控制器名称 ViewBag.controllername = RouteData.Values["controller"].ToString().ToLower(); int pagesize = 6; //获取发布博文信息 var blogArticleList = BlogArticleService.QueryWhere(a => true).OrderByDescending(a => a.create_time).ToPagedList(pageindex, pagesize); foreach (var item in blogArticleList) { if (!string.IsNullOrEmpty(item.content)) { item.content = HtmlTool.ReplaceHtmlTag(item.content); if (item.content.Length > 200) { item.content = item.content.Substring(0, 200); } } } //获取轮播广告新 ViewBag.adList = AdvertisementServices.QueryOrderBy(a => true, a => a.create_time, false).ToPagedList(1, 3); //发布时间排序 ViewBag.blogtimelist = BlogArticleService.QueryOrderBy(c => true, c => c.create_time, false); //评论排序 ViewBag.blogtrafficlist = BlogArticleService.QueryOrderBy(c => true, c => c.traffic, false); //留言排序 string sql = @"select a.*,b.title from (select blog_id,count(1) as counts from guest_book group by blog_id) as a inner join blog_article as b on b.id=a.blog_id order by counts desc"; ViewBag.blogguestbooklist = GuestbookService.RunProc <TopgbViewModel>(sql); return(View(blogArticleList)); }
/// <summary> /// 获取视图博客详情信息 /// </summary> /// <param name="id"></param> /// <returns></returns> public BlogViewModel getBlogDetails(string id) { BlogArticle blogArticle = dal.QueryWhere(a => a.id == id).FirstOrDefault(); BlogArticle nextblog = dal.QueryWhere(a => a.id == id).FirstOrDefault(); BlogArticle prevblog = dal.QueryWhere(a => a.id == id).FirstOrDefault(); blogArticle.traffic += 1; dal.Edit(blogArticle, new string[] { "traffic" }); dal.SaverChanges(); //AutoMapper自动映射 Mapper.Initialize(cfg => cfg.CreateMap <BlogArticle, BlogViewModel>()); BlogViewModel models = Mapper.Map <BlogArticle, BlogViewModel>(blogArticle); if (nextblog != null) { models.next = nextblog.title; models.next_id = nextblog.id; } if (prevblog != null) { models.previous = prevblog.title; models.previous_id = prevblog.id; } models.digest = HtmlTool.ReplaceHtmlTag(blogArticle.content).Length > 100 ? HtmlTool.ReplaceHtmlTag(blogArticle.content).Substring(0, 200) : HtmlTool.ReplaceHtmlTag(blogArticle.content); return(models); }
/// <summary> /// URLエスケープする。 /// 派生クラスでよく使うので便宜上用意している。 /// </summary> protected static string UE(string x) { return(HtmlTool.UE(x)); }