protected override string getCoverHref(Movie movie) { string attrName = "value"; HtmlDocument html = HAPUtil.Load(movie.pageHref, webCharset); HtmlNode node = null; // head swf var param = html.DocumentNode.SelectNodes("/html/body/table/td/table[2]//object/param"); if (param != null) { foreach (HtmlNode p in param) { if (p.Attributes["name"].Value == "movie") { node = p; break; } } } string imgUrl = node.Attributes[attrName].Value; Uri coverUri = new Uri(pageBaseUri, imgUrl); return(coverUri.ToString()); }
public override void execute(bool isUpdate) { HtmlDocument html = HAPUtil.Load(startPage, webCharset); //HtmlDocument html = HAPUtil.Load(startPage, webCharset, true); ArrayList selectors = new ArrayList(new string[] { "body table table", "body table table table" }); foreach (var s in selectors) { try { foreach (var e in html.DocumentNode.CssSelect((string)s)) { var mvid = ""; foreach (var a in e.CssSelect("a")) { if (!a.Attributes.Contains("href")) { continue; } var href = a.Attributes["href"].Value; mvid = RegexUtil.MatcheGroups("k[0-9]{4}", href, 0); Movie mv = dao.findMovieByMvid(mvid); if (mvid != "" && (mv == null || isUpdate)) { if (mv == null) { mv = new Movie(); } List <Actress> actrs = new List <Actress>(); Series series = getSeries(e); Label label = getLabel(getLabelNode(e)); mv.mvid = mvid; mv.pageHref = getPageHref(href); mv.publishDate = getPublishDate(getPublishDateNode(e)); mv.releaseDate = mv.publishDate; mv.thumbnail = getThumbnail(getThumbnailNode(e)); mv.coverHref = getCoverHref(mv); mv.title = getTitle(getTitleNode(e)); var xpName = getActressName(getActressNode(e)); ActressMovie actmv = new ActressMovie(); foreach (var xpA in xpName) { Actress actr = new Actress(); actr.name = xpA; actr = dao.QueryOrInsert(actr); actrs.Add(actr); } mv.Maker = maker; mv.Series = series; mv.Label = label; mv = dao.QueryOrInsert(mv); var order = 0; foreach (var actr in actrs) { ActressMovie amv = new ActressMovie(); amv.actressId = actr.id; amv.actressOrder = order++; amv.movieId = mv.id; dao.insertOrUpdate(amv); } } } } } catch (Exception) { continue; } } }
protected override string getCoverHref(Movie movie) { string attrName = "src"; HtmlDocument html = HAPUtil.Load(movie.pageHref, webCharset); HtmlNode node = null; // swf var param = html.DocumentNode.SelectNodes("/html/body/table/td/table[10]//object/param"); if (param == null) { param = html.DocumentNode.SelectNodes("/html/body/table/td/table[9]//object/param"); } if (param == null) { param = html.DocumentNode.SelectNodes("/html/body/table/td/table[8]//object/param"); } if (param != null) { foreach (HtmlNode p in param) { if (p.Attributes["name"].Value == "movie") { node = p; attrName = "value"; break; } } } // jpg if (node == null) { node = html.DocumentNode.SelectSingleNode("/html/body/table/td/table[9]//img[1]"); } if (node == null) { node = html.DocumentNode.SelectSingleNode("/html/body/table/td/table[8]//img[1]"); } if (node == null) { node = html.DocumentNode.SelectSingleNode("/html/body/table/td/table[10]//img[1]"); } // head swf if (node == null && param == null || RegexUtil.MatcheGroups(@"\.gif$", node.Attributes[attrName].Value, 0) == ".gif") { param = html.DocumentNode.SelectNodes("/html/body/table/td/table[3]//td/td//object/param"); if (param != null) { foreach (HtmlNode p in param) { if (p.Attributes["name"].Value == "movie") { node = p; attrName = "value"; break; } } } } string imgUrl = node.Attributes[attrName].Value; Uri coverUri = new Uri(pageBaseUri, imgUrl); return(coverUri.ToString()); }