搜索
查看: 1102|回复: 0

[行业数据] 爬虫实现目标网站验证码登陆

[复制链接]

13

主题

0

回帖

347

积分

中级会员

积分
347
发表于 2021-12-10 16:09:18 | 显示全部楼层 |阅读模式
在爬虫访问目标网站的过程中,很多网站为了避免被恶意访问,需要设置验证码登录,这样是为了避免非人类的访问。今天我们学习下如何使用Python爬虫实现验证码登录并且将生成的验证码保存下来,然后人为输入后,包装后再POST给服务器,实现验证,这里还涉及到了Cookie和代理ip,cookie都是随机生成的。这里主要讲下代理ip的使用,因为不管网站是以什么方式进行验证,ip都是最基础的。因为目标网站一般都是从最基层的访问ip开始进行限制访问。
这里我们使用python简单的示例下,借鉴了www.16yun.cn他们家提供的demo:
// 要访问的目标页面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();
demo里面主要是给大家示例了隧道代理的使用方式,是一种比较好用的代理方式。上述是小编给大家介绍的Python爬虫实现验证码登录详解整合和代理的使用,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。






若有收获,就点个赞吧










您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

 
 
大数据行业交流
大数据行业交流
大数据求职招聘
大数据求职招聘
站长电话:
15010106923
微信联系:
hb-0310
站长邮箱:
ab12-120@163.com
大数据中国微信

QQ   

版权所有: Discuz! © 2001-2013 大数据.

GMT+8, 2024-5-2 05:57 , Processed in 0.056160 second(s), 24 queries .

快速回复 返回顶部 返回列表