这篇文章主要介绍了python基于requests库爬取网站信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下。
在爬虫学习过程中我们经常会访问很多的技术网站,里面有分享很多的学习课程,像慕课网大家肯定都很熟悉了,里面的很多课程是很多学习价值的,但是不所有的课程都好,我们可以通过大家对某个课程内容的评价去判刑下是否值得学习,当然评价只是一个参考的因素,并不能直接觉得这个课程质量的好或差。那么我们今天就以慕课网为例给大家分享下,如果使用python去抓取慕课网课程的评价。一般这样的网站都是会做一些反爬机制的,最常见的就是封ip,我们这里主要讲下怎么在爬虫程序里面使用代理,关于代理使用简单的一部分代码分享给大家参考下:
// 要访问的目标页面 string targetUrl = "http://httpbin.org/ip"; // 代理服务器(产品官网 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(); }
关于爬虫中代理的使用就分享到这里,有兴趣的可以关注我,我会经常分享些技术作品,大家共同进步!