1. 程式人生 > >博客園爬蟲模擬

博客園爬蟲模擬

ups 原理分析 enc matches 模擬 value logs creat odi

  

  /*
             原理分析: 
             1.通過抓包工具 分析請求地址:http://www.cnblogs.com/liuxiaoji/p/4689119.html
             2.可以看出這個請求是GET請求
             3.通過http請求把數據抓取回來
             4.HttpHelper幫助類請聯系作者購買
            */
            HttpHelper http = new HttpHelper();
            string htmlText = http.HttpGet("
http://www.cnblogs.com/liuxiaoji/p/4689119.html",string.Empty, Encoding.UTF8, false, false, 5000); // 正則css路徑分析 Regex linkCss = new Regex(@"<link\b[^<>]*?\bhref[\s\t\r\n]*=[\s\t\r\n]*[""‘]?[\s\t\r\n]*(?<url>[^\s\t\r\n""‘<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
// 搜索匹配的字符串 MatchCollection matches = linkCss.Matches(htmlText); // 取得匹配項列表 foreach (Match match in matches) { var item = match.Groups["url"].Value; if (!item.Contains("http://www.cnblogs.com")) { htmlText
= htmlText.Replace(item, item.Contains("/skins") ? $"http://www.cnblogs.com{item}" : $"http://www.cnblogs.com/skins{item}"); } } // 最終結果 var result = htmlText; // 文件保存 using (FileStream fs = new FileStream("E:\\liuxiaoji.html", FileMode.Create)) { var data = Encoding.UTF8.GetBytes(result); fs.Write(data, 0, data.Length); }

博客園爬蟲模擬