这段时间在研究如何破解官网验证码,然后进行下一步的爬虫操作,然而一个多星期过去了,编写的代码去识别验证码的效率还是很低,尝试用了tesserorc库和百度的API接口,都无济于事,本以为追不上五月的小尾巴,突然想到我尝试了这么多方法何不为一篇破坑博客呢。
现在很多官网都会给出相应的反扒措施,就拿这个登入来说,如果你不登入账号那么你就只能获取微量的信息,甚至获取不了信息,这对我们爬虫来说是非常不友好的,但是我们总不可能每次都需要手动登入吧,一次二次你能接受,大工程呢?既然学了python,而不为用脚本代码帮你做这点事情呢?
模拟登入:
图为简书登入模块:
不同方式优缺点对比:
突然想到一种可能更简单的方式,所以整理得三,不同情况参考不同用法!
如下:
方式 | 优点 | 缺点 |
---|---|---|
requests的auth参数 | 极简 | 出现的次数很少 |
requests的session会话 | 维持cookies一致 | 需要构造一定参数 |
selenium自动化 | 最强的模拟登入 | 安装复杂,库名太多 |
以上就是三大登入的优缺点,个人推荐使用session去尝试模拟登入!
方式一: requests的auth参数:
- 这个是我无意在书上看到的。关于requests的高级用法中,提到了这点,这里就记录一下,个人觉得这种方式只可能出现在
某网站
中,学了也挺好的,省的限制观看次数,后续我也会更新如何破解vip视频的思路,有需要的关注我
。
使用类似场所:
用法很简单,代码如下:
# parasm: url : 网站
# parasm: username: 用户名
# parasm: password : 密码
import requests
url = '********'
r = requests.get(url, anth=('username', 'password'))
print(r.text)
还是一句话,这种方式极大可能出现在某网站
中,其他情况基本不可能出现,那么就得使用下面二种方式了。
方式一: requests高级用法扩展:
-
相信很多人看书都不看全的,很多细节都在书中呢,下面扩展几种requests库的高级用法,很好用的东西。
-
超时处理:
某网站
服务器搭建在国外,加载巨慢。代码可能抛出timeout : xxxx
等情况,这个时候用它:
r = requests.get(url , timeout=30)
- 文件上传: 假如某网站需要上传文件,那么就使用它:
files = {
'file':