作者:mobiledu2502860217 | 来源:互联网 | 2023-07-27 16:38
python爬虫登录网站,python 爬虫 登录
python视频教程栏目介绍实现python的爬虫网页登录。
免费推荐:python视频教程
相信大家在编写python爬虫的时候,在抓取网站的时候会遇到一些登录问题,比如登录的时候会遇到输入验证码,比如登录的时候会遇到图片拖拽等验证。你如何解决这样的问题?一般有两种方案。
使用COOKIE登录。
我们可以使用COOKIEs登录,先获取浏览器的COOKIEs,然后使用requests库直接登录。服务器会认为你是一个真正的登录用户,所以会返回一个登录状态给你。这个方法非常容易使用。基本上大多数需要验证码的网站都可以通过COOKIEs登录。
#!-*-编码:utf-8 -*-
导入请求导入随机导入请求。要访问的适配器#目标页
targetUrlList=[
https://httpbin.org/ip ,
https://httpbin.org/headers ,
https://httpbin.org/user-agent ,
]
#代理服务器
proxyHost=t.16yun.cn
proxyPort=31111
#代理隧道认证信息
proxyUser=用户名
proxyPass=密码
proxyMeta=http://%(用户)s:%(通过)s@%(主机)s:%(端口)s % {
主机 :代理主机,
端口 :代理端口,
用户:代理用户,
pass: proxyPass,
}
# http代理用于设置http和https访问
代理={
http: proxyMeta,
https: proxyMeta,
}
#访问网站三次,使用同一个会话(keep-alive),都可以保持同一个外部IP。
s=requests.session()
#设置COOKIE
COOKIE _ dict={ j session : 123456789 }
COOKIEs=requests . utils . COOKIEjar _ from _ dict(COOKIE _ dict,COOKIEjar=None,overwrite=True)
s.COOKIEss=范围(3):中I的COOKIE
对于targetUrlList:中的url
r=s.get(url,proxies=proxies)
打印简历
如果有验证码,此时使用resp * * e=requests _ session . post(URL=URL _ log in,data=data)是不可接受的。方法应该如下:
Resp * * e _ captcha=requests _ session . get(URL=URL _ log in,COOKIEs=COOKIEs)Resp * * E1=requests . get(URL _ log in)#未登录Resp * * E2=requests _ session . get(URL _ log in)#登录是因为RESP * * E3=requests _ session . get(URL _ results)#已经登录是因为我之前得到了Resp**e COOKIE!模拟着陆
这里不得不说一句老话,前人栽树,后人乘凉。当时想爬上知乎的选盐篇,却卡在了登陆区。没想到搜下来发现了一个模拟着陆的库,非常好用。不过基于好东西不分享防止和谐的原则,这里就不说了。
具体思路是通过请求模拟登录,然后返回验证码,再传入验证码登录成功。以上就是python爬虫网页登录的实现细节。更多信息请关注盛行IT软件开发工作室的其他相关文章!