论坛首页 编程语言技术论坛

通过python爬虫获取知乎高赞数据

浏览 500 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2022-02-15  
我想知乎应该是很多小伙伴手机里面必有的app吧,小编也经常刷知乎,对上面的很多问题还蛮感兴趣的,特别是有些问题大家的回答比较有意思,一直都想要尝试去了解下知乎上最高赞同的Top10是哪些答案,知乎内部的人可能查一下数据库就可以了,而外部的人只能通过爬虫。虽然这不是个什么很大的事,但是还是想知道的,于是动手实践了下,在学习的过程中也会增加自己的经验。
这里我决定使用C Sharp来写爬虫程序,只会一直都是反爬比较严的网站,想要多获取点数据网站肯定会封ip的,所以我这里是加了代理进行辅助的,这里给大家示例下程序里面加上代理的使用方式,这里给有需要的小伙推荐下我使用的代理,亿牛云代理,真的是寻了很久才找到的好用的代理商(https://www.16yun.cn/)。关于代理的使用部分代码如下:
// 要访问的目标页面
string targetUrl = "https://www.zhihu.com/";


// 代理服务器(产品官网 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();
}
以下是获取到的一个简单的爬虫结果,不知道有没有你感兴趣的话题呀。
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics