介绍
这篇文章主要介绍了如何实现python爬虫网页登录,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。
相信各位在写python爬虫的时候会在爬取网站时遇到一些登陆的问题,比如说登陆时遇到输入验证码比如说登录时遇到图片拖拽等验证,如何解决这类问题呢?一般有两种方案。
使用饼干登陆
我们可以通过使用饼干登陆,首先获取浏览器的cookie,然后利用请求库直接登陆cookie,服务器就会认为你是一个真实登陆用户,所以就会返回给你一个已登陆的状态,这个方法是很好用的,基本上绝大部分的需要验证码登录的网站都可以通过饼干登录来解决,
,# !,- *安康;编码:utf-8 - * - ,,,import requests ,,, import random ,,, import requests.adapters ,,, #,要访问的目标页面 ,,,targetUrlList =, ( ,,,,,,,,https://httpbin.org/ip" ,,,,,,,,https://httpbin.org/headers" ,,,,,,,,https://httpbin.org/user-agent" ,,,) ,,,#,代理服务器 ,,,proxyHost =,“t.16yun.cn" ,,,proxyPort =,“31111”; ,,,#,代理隧道验证信息 ,,,proxyUser =,“username" ,,,proxyPass =,“password" ,,,proxyMeta =,“http://%(用户):%(通过)s@ %(主持人):%(港口)s", %, { ,,,,,,,“host":, proxyHost, ,,,,,,,“port":, proxyPort, ,,,,,,,“user":, proxyUser, ,,,,,,,“pass":, proxyPass, ,,,} ,,,#,设置,http和https访问都是用http代理 ,,,proxies =, { ,,,,,,,“http":, proxyMeta, ,,,,,,,“https":, proxyMeta, ,,,} ,,,#,访问三次网站,使用相同的会话(点火电极),均能够保持相同的外网IP ,,,s =, requests.session () ,,,#,设置饼干 ,,,cookie_dict =, {“JSESSION":“123456789“} ,,,cookies =, requests.utils.cookiejar_from_dict (cookie_dict, cookiejar=没有,覆盖=True) ,,,s.cookies =, cookies ,,, for 小姐:拷贝范围(3): ,,,,,,,for url 拷贝targetUrlList: ,,,,,,,,,,,r =, s.get (url,代理=代理) ,,,,,,,,,,,print r.text 若存在验证码,此时采用resp * * e =, requests_session.post (url=url_login, data=https://www.yisu.com/zixun/data)是不行的,做法应该如下: 分别地* * e_captcha=requests_session。get (url=url_login饼干=饼干)职责* * e1=requests.get (url_login) #未登陆resp * * e2=requests_session.get (url_login) #已登陆,因为之前拿到了resp * * e饼干! resp * * e3=requests_session.get (url_results) #已登陆,因为之前拿到了resp * * e饼干!
模拟登陆
这里不得不说一句老话,前人种的树,后人乘凉,当时我想爬一下知乎盐选的文章,但是卡在了登陆这块,没想到搜索下来发现了一个模拟登陆的库,非常好用,不过本着好东西不分享防和谐的原则,就不在这里说了。
具体思路也就是通过请求来进行模拟登陆,然后返回一下验证码,之后传入验证码即可登陆成功了。
感谢你能够认真阅读完这篇文章,希望小编分享如何实现python爬虫网页登录内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!