随着大数据的需求日益增加,网络爬虫应运而生,很多的小伙伴选择从事爬虫工作。一开始都需要进行爬虫知识的学习,因此网上有很多的爬虫教程,各种爬虫书籍等学习的资料。今天我们主要来研究下在学习方式多元化的今天,有多少人在学习爬虫时会选择购买相关书籍的。
我们可以通过获取当当网上关于爬虫类书籍的销量来进行分析,我们可以通过python这个关键字,爬取与该关键字相关的所有图书数据。这里我们以python来实现数据的获取。但是在访问的过程中为了避免目标网站封ip,爬虫程序里面加了代理,这里重分享下代理在爬虫程序里面的实现过程,也是比较有学习价值的一部分。这里选择以实际示例展示给大家看下:
// 要访问的目标页面 string targetUrl = "http://search.dangdang.com/?key=python&act=input"; // 代理服务器(产品官网 www.16yun.cn) string proxyHost = "http://t.16yun.cn"; string proxyPort = "31111"; // 代理验证信息 string proxyUser = "username"; string proxyPass = "password"; // 设置代理服务器 WebProxy proxy = new WebProxy(string.Format("{0}:{1}", proxyHost, proxyPort), true); ServicePointManager.Expect100Continue = false; var request = WebRequest.Create(targetUrl) as HttpWebRequest; request.AllowAutoRedirect = true; request.KeepAlive = true; request.Method = "GET"; request.Proxy = proxy; //request.Proxy.Credentials = CredentialCache.DefaultCredentials; request.Proxy.Credentials = new System.Net.NetworkCredential(proxyUser, proxyPass); // 设置Proxy Tunnel // Random ran=new Random(); // int tunnel =ran.Next(1,10000); // request.Headers.Add("Proxy-Tunnel", String.valueOf(tunnel)); //request.Timeout = 20000; //request.ServicePoint.ConnectionLimit = 512; //request.UserAgent = "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.82 Safari/537.36"; //request.Headers.Add("Cache-Control", "max-age=0"); //request.Headers.Add("DNT", "1"); //String encoded = System.Convert.ToBase64String(System.Text.Encoding.GetEncoding("ISO-8859-1").GetBytes(proxyUser + ":" + proxyPass)); //request.Headers.Add("Proxy-Authorization", "Basic " + encoded); using (var response = request.GetResponse() as HttpWebResponse) using (var sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8)) { string htmlStr = sr.ReadToEnd();
从获取的数据分析看下,python类的书籍还是蛮多的,价格也参差不齐。如果是刚开始学习爬虫的想买书籍但是又不想踩坑,建议可以去看下网上那些爬虫大佬推介的比较实用的python类书籍。
若有收获,就点个赞吧