public static int GetCoverImageUrl( IWin32Window owner, string strISSN, string strYear, string strIssueNo, ref CookieContainer cookie, out string strImageUrl, out string strError) { strError = ""; strImageUrl = ""; string strUrl = "http://xxdy.qikan.com/MagInfo.aspx?issn=" + strISSN + "&year=" + strYear + "&periodNum=" + strIssueNo; /* * Connection: Keep-Alive * Cookie: xxdy=Default|Default_blue|1674-3121|%e4%b8%ad%e5%b0%8f%e5%ad%a6%e5%be%b7%e8%82%b2|2016|8|xxdy|459|||%e5%b0%8f%e5%ad%a6%e5%be%b7%e8%82%b2%e7%bd%91%e7%ab%99%3ahttp%3a%2f%2fxxdy.qikan.com|2016|9|True|ãä¸å°å¦å¾·è²ãæ¯ç±å½å®¶æè²é¨å§æååå¸è大å¦ä¸»åçä¸æ¬å * ¨é¢åæ ä¸å°å¦å¾·è²å·¥ä½çä¸ä¸æåï¼åæ¶ä½ä¸ºä¸å½æè²å¦ä¼ä¸å°å¦å¾·è²ç 究åä¼ä¼åãæ¬åè´åäºä¸ºä¸å°å¦å¾·è²ç论ç 究ä¸å®è·µå·¥ä½è * æä¾ææ°çå¾·è²æ¹é©å¨åãæå¨çå¾·è²æ¿çæå¼ãæ°éçå¾·è²ç 究ææãé²æ´»çå¾·è²å®è·µç»éªï¼åäºæ为ä¸å°å¦å¾·è²æ¹é©çâé£åæ âï¼éææ¹é©çâæ头å * µâï¼å¾·è²å·¥ä½è * 交æµç»éªãæ¢ç´¢å¾·è²è§å¾çâ大èå°âï¼å¼é¢å¾·è²è¡æ¿é¨é¨ãæç é¨é¨å广大德è²æå¸çâåè°é¨âã%0d%0aç¼ è¾ é¨ï¼020-85215129 85211209%0d%0aå è¡ é¨ï¼020-85215179 85211443ï¼ä¼ çï¼%0d%0açµåé®ç®±ï¼[email protected]ï¼æ稿ï¼%0d%0a [email protected]ï¼è®¢é * ï¼%0d%0aå客ï¼http://blog.sina.com.cn/s/articlelist_2734759432_0_1.html */ if (cookie == null) { cookie = new CookieContainer(); } WebClientEx webClient = new WebClientEx(cookie); #if NO { byte[] byteArray = x.DownloadData(new Uri("http://xxdy.qikan.com")); } x = new WebClientEx(cookie); #endif webClient.Headers.Add("Accept", "text/html, application/xhtml+xml, image/jxr, */*"); webClient.Headers.Add("Accept-Encoding", "gzip, deflate"); webClient.Headers.Add("Accept-Language", "zh-Hans-CN, zh-Hans; q=0.8, en-US; q=0.5, en; q=0.3"); // Host: xxdy.qikan.com webClient.Headers.Add("Host", "xxdy.qikan.com"); // x.BaseAddress = "xxdy.qikan.com"; webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"); try { #if NO byte[] byteArray = x.DownloadData(new Uri(strUrl)); Stream stream = new MemoryStream(byteArray); HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.OptionFixNestedTags = true; htmlDoc.Load(stream, true); // ParseErrors is an ArrayList containing any errors from the Load statement if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0) { // Handle any parse errors as required strError = "parse html error: " + htmlDoc.ParseErrors.ToString(); return(-1); } #endif byte[] byteArray = webClient.DownloadData(new Uri(strUrl)); string strContent = Encoding.UTF8.GetString(byteArray); // string strContent = x.DownloadString(new Uri(strUrl)); HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.OptionFixNestedTags = true; htmlDoc.LoadHtml(strContent); #if NO // ParseErrors is an ArrayList containing any errors from the Load statement if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0) { // Handle any parse errors as required strError = "parse html error: " + htmlDoc.ParseErrors.ToString(); return(-1); } #endif if (htmlDoc.DocumentNode == null) { strError = "htmlDoc.DocumentNode == null"; return(-1); } /* * <div class="left1"> * <!--最新封面开始--> * * * <div class="cover1"> * <h1>封面</h1> * <div class="cover1_box"> * <a href="../../MagInfo.aspx?issn=1674-3121&year=2013&periodNum=7"><img src="http://img.qikan.com.cn/qkimages/xxdy/xxdy201307-l.jpg" width="190" height="270" border="0" alt="2013年第7期" /></a> * <span class="f14 fBold"><a href="MagInfo.aspx?issn=1674-3121&year=2013&periodNum=7" title="2013年第7期">2013年第7期</a> * </span> * * */ #if NO HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes("//img"); foreach (HtmlNode node in nodes) { string src1 = node.GetAttributeValue("src", ""); int i = 0; i++; } #endif HtmlAgilityPack.HtmlNode cover1_box = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='cover1_box']"); if (cover1_box == null) { strError = "cover1_box 没有找到"; return(-1); } HtmlNode img = cover1_box.SelectSingleNode("*/img"); string src = img.GetAttributeValue("src", ""); strImageUrl = src; return(1); } catch (Exception ex) { strError = "异常: " + ex.Message; return(-1); } }
public static int GetCoverImageUrl( IWin32Window owner, string strISSN, string strYear, string strIssueNo, ref CookieContainer cookie, out string strImageUrl, out string strError) { strError = ""; strImageUrl = ""; string strUrl = "http://xxdy.qikan.com/MagInfo.aspx?issn=" + strISSN + "&year=" + strYear + "&periodNum=" + strIssueNo; /* Connection: Keep-Alive Cookie: xxdy=Default|Default_blue|1674-3121|%e4%b8%ad%e5%b0%8f%e5%ad%a6%e5%be%b7%e8%82%b2|2016|8|xxdy|459|||%e5%b0%8f%e5%ad%a6%e5%be%b7%e8%82%b2%e7%bd%91%e7%ab%99%3ahttp%3a%2f%2fxxdy.qikan.com|2016|9|True|ãä¸å°å¦å¾·è²ãæ¯ç±å½å®¶æè²é¨å§æååå¸è大å¦ä¸»åçä¸æ¬å ¨é¢åæ ä¸å°å¦å¾·è²å·¥ä½çä¸ä¸æåï¼åæ¶ä½ä¸ºä¸å½æè²å¦ä¼ä¸å°å¦å¾·è²ç 究åä¼ä¼åãæ¬åè´åäºä¸ºä¸å°å¦å¾·è²ç论ç 究ä¸å®è·µå·¥ä½è æä¾ææ°çå¾·è²æ¹é©å¨åãæå¨çå¾·è²æ¿çæå¼ãæ°éçå¾·è²ç 究ææãé²æ´»çå¾·è²å®è·µç»éªï¼åäºæ为ä¸å°å¦å¾·è²æ¹é©çâé£åæ âï¼éææ¹é©çâæå¤´å µâï¼å¾·è²å·¥ä½è 交æµç»éªãæ¢ç´¢å¾·è²è§å¾çâ大èå°âï¼å¼é¢å¾·è²è¡æ¿é¨é¨ãæç é¨é¨å广大德è²æå¸çâåè°é¨âã%0d%0aç¼ è¾ é¨ï¼020-85215129 85211209%0d%0aå è¡ é¨ï¼020-85215179 85211443ï¼ä¼ çï¼%0d%0açµåé®ç®±ï¼[email protected]ï¼æ稿ï¼%0d%0a [email protected]ï¼è®¢é ï¼%0d%0aå客ï¼http://blog.sina.com.cn/s/articlelist_2734759432_0_1.html */ if (cookie == null) cookie = new CookieContainer(); WebClientEx webClient = new WebClientEx(cookie); #if NO { byte[] byteArray = x.DownloadData(new Uri("http://xxdy.qikan.com")); } x = new WebClientEx(cookie); #endif webClient.Headers.Add("Accept", "text/html, application/xhtml+xml, image/jxr, */*"); webClient.Headers.Add("Accept-Encoding", "gzip, deflate"); webClient.Headers.Add("Accept-Language", "zh-Hans-CN, zh-Hans; q=0.8, en-US; q=0.5, en; q=0.3"); // Host: xxdy.qikan.com webClient.Headers.Add("Host", "xxdy.qikan.com"); // x.BaseAddress = "xxdy.qikan.com"; webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36 Edge/14.14393"); try { #if NO byte[] byteArray = x.DownloadData(new Uri(strUrl)); Stream stream = new MemoryStream(byteArray); HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.OptionFixNestedTags = true; htmlDoc.Load(stream, true); // ParseErrors is an ArrayList containing any errors from the Load statement if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0) { // Handle any parse errors as required strError = "parse html error: " + htmlDoc.ParseErrors.ToString(); return -1; } #endif byte[] byteArray = webClient.DownloadData(new Uri(strUrl)); string strContent = Encoding.UTF8.GetString(byteArray); // string strContent = x.DownloadString(new Uri(strUrl)); HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument(); htmlDoc.OptionFixNestedTags = true; htmlDoc.LoadHtml(strContent); #if NO // ParseErrors is an ArrayList containing any errors from the Load statement if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0) { // Handle any parse errors as required strError = "parse html error: " + htmlDoc.ParseErrors.ToString(); return -1; } #endif if (htmlDoc.DocumentNode == null) { strError = "htmlDoc.DocumentNode == null"; return -1; } /* <div class="left1"> <!--最新封面开始--> <div class="cover1"> <h1>封面</h1> <div class="cover1_box"> <a href="../../MagInfo.aspx?issn=1674-3121&year=2013&periodNum=7"><img src="http://img.qikan.com.cn/qkimages/xxdy/xxdy201307-l.jpg" width="190" height="270" border="0" alt="2013年第7期" /></a> <span class="f14 fBold"><a href="MagInfo.aspx?issn=1674-3121&year=2013&periodNum=7" title="2013年第7期">2013年第7期</a> </span> * * */ #if NO HtmlNodeCollection nodes = htmlDoc.DocumentNode.SelectNodes("//img"); foreach(HtmlNode node in nodes) { string src1 = node.GetAttributeValue("src", ""); int i = 0; i++; } #endif HtmlAgilityPack.HtmlNode cover1_box = htmlDoc.DocumentNode.SelectSingleNode("//div[@class='cover1_box']"); if (cover1_box == null) { strError = "cover1_box 没有找到"; return -1; } HtmlNode img = cover1_box.SelectSingleNode("*/img"); string src = img.GetAttributeValue("src", ""); strImageUrl = src; return 1; } catch (Exception ex) { strError = "异常: " + ex.Message; return -1; } }