2022-02-17 16:27

随着大数据的需求日益增加,网络爬虫应运而生,很多的小伙伴选择从事爬虫工作。一开始都需要进行爬虫知识的学习,因此网上有很多的爬虫教程,各种爬虫书籍等学习的资料。今天我们主要来研究下在学习方式多元化的今天,有多少人在学习爬虫时会选择购买相关书籍的。

我们可以通过获取当当网上关于爬虫类书籍的销量来进行分析,我们可以通过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类书籍。


评论