爬虫之豆瓣的自动登陆
刚刚学习了一下BeautifulSoup模块,尝试着按照视频的教程自己实现了一下豆瓣网的自动登陆。现在将整个学习过程做一下记录。
1、网页分析
如上图所示,为豆瓣网的登陆页面。可以看到登陆链接为
https://accounts.douban.com/login
由于这里存在验证码的问题,而我们目前只是学习阶段,并不需要花钱去买相应的解析接口,所以采取的方式是采用get方法获取验证码,然后将验证码的图片保存为本地图片,通过手动打开读取后填入表中发送登陆请求。
2、方案实施
(1)首先我们需要打开登陆页面获取验证码图片
如图所示,在获取验证码的过程中有两个参数需要填写。一个是captcha-id另外一个就是size。在后面的操作中我们发现size参数总是等于s,所以在post提交时仅需要获得captcha-id即可。以下是实现的代码:
import requests
from bs4 import BeautifulSoup
session=requests.Session()
#首次打开登陆页面,刷新出验证码链接
r1=session.get(url='https://accounts.douban.com/login',headers={'user-agent':'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'})soup=BeautifulSoup(r1.text,'html.parser')
#获取验证码链接和captcha-id值
captcha=soup.find(name='img',attrs={'id':'captcha_image'}).get('src')
captcha_id=soup.find(name='input',attrs={'name':'captcha-id'}).get('value')
#采用get方法得到验证码图片
r2=session.get(url=captcha,headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'})
(2)将获取到的验证码保存到本地
我们将获取到的验证码保存到本地后让用户打开识别后返回输入到程序中提交登陆请求
#保存到本地手动识别
with open('douban.jpg','wb') as f:f.write(r2.content)f.close()
captcha=input('打开douban.jpg输入验证码:')
(3)将组织好的登陆数据提交登陆
#组织请求体中的数据
form_data= {
'redir': 'https://www.douban.com/',
'form_email':'xxxxxxxx',
'form_password': 'xxxxxx,
'captcha-solution': captcha,
'captcha-id':captcha_id,
'login': '登录'
}
#登陆请求
r3=session.post(url='https://accounts.douban.com/login',headers={'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'},data=form_data
)
3、验证
将最后得到的r3页面打印出来,然后在结果中搜索自己的用户名信息,可以看到存在用户信息
总结
在爬取的过程中最重要的一步就是分析登陆提交的方式,如果采用的是提交form表单的方式登陆我们就可以通过测试得到提交时需要的数据项,然后针对性的去获取相应的数据值。比如在本文中很重要的一项就是验证码的captcha-id值,通过分析网页结构提取即可。
爬虫之豆瓣的自动登陆相关推荐
- 基于fiddler的网络爬虫校园网自动登陆系统
最近校园网(需要WEB登陆)不太稳定,总是掉线,于是想写一个基于网络爬虫的校园网自动登陆系统,让程序自动每隔一段时间自动检测网络连通性,查了一些资料,最后用了Fiddler软件进行网络监听,对网页ht ...
- winform模拟登陆网页_Python爬虫使用selenium爬取群成员信息(全自动实现自动登陆)...
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: python小爬虫 PS:如有需要Python学习资料的小伙伴可以 ...
- Python爬虫使用selenium爬取qq群的成员信息(全自动实现自动登陆)
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: python小爬虫 PS:如有需要Python学习资料的小伙伴可以 ...
- python京东自动签到_爬虫实战【10】利用Selenium自动登陆京东签到领金币
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...
- python京东自动签到领金豆_爬虫实战【10】利用Selenium自动登陆京东签到领金币...
今天我们来讲一下如何通过python来实现自动登陆京东,以及签到领取金币. 如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前 ...
- Java爬虫获取豆瓣的短评数据
Java爬虫获取豆瓣的短评数据 打开豆瓣的选电影页面的链接,可以看到该网页的下面分为热门,最新,经典等栏目分类,网页每次显示20部电影,通过几部电影的查看,可以发现电影的短评页https://movi ...
- 使用selenium自动登陆b站 图片文字验证识别
文章目录 前言 一. 反,反反爬虫 1.反爬虫 2.反反爬虫 二,超级鹰 三.完整代码 1.导包 2.超级鹰接口 3.连接手动开启的浏览器 4.定位文本框标签 5.图片文字识别 6.文本处理,坐标处理 ...
- Python爬虫教程,slenium模拟登陆知乎2020
文章目录 引言 登录成功 解决方案 意外收获 参考资料 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如 ...
- python自动登录校园网 密码_python自动登陆校园网
由于每次打开电脑都要手动的登录校园网,导致很麻烦,所以写了一个爬虫来模拟浏览器自动登录校园网的功能 1.使用Burpsuit对校园网登录接口进行抓包分析 简介:burpsuite是一款渗透工具,运行环 ...
最新文章
- Selenium3 + Python3自动化测试系列一——安装Python+selenium及selenium3 浏览器驱动
- redirect路由配置 vue_Web前端:Vue路由进阶配置
- OpenStack创建win7实例遇到的问题(尚未解决,求帮助)
- “打工皇帝”唐骏借收购重返IT
- html+jquery翻页相册(原创)
- Windows下nmap命令及Zenmap工具的使用方法
- php程序员未来前景,PHP程序员有前景吗?3个角度为你详解!
- pip-script.py‘ is not present Verifying transaction: failed
- 民科微服务电脑版下载_民科微服务电子注册护士个人端下载-民科微服务医师电子注册app最新版 v2.4_爱下手机站...
- 离线强化学习(Offline RL)系列1:离线强化学习原理入门
- Android短信备份案例
- python练习:简单火柴人游戏
- 仲至信息与Cornet Solutions签订日本经销合同
- 服务器禁止访问文件,服务器文件夹访问权限设置 控制访问权限方法
- java狗叫_java学习(8) | 学步园
- 游戏设计的艺术:一本透镜的书——第二十五章 好的游戏是通过游戏测试做出来的
- odrive搭建差速小车+轮毂电机+RC航模控制器
- MySQL健康检查(一)
- aardio - 动态视频桌面
- Win8去掉桌面图标的箭头
热门文章
- android滑动手势侦测,Android滑动手势侦测方法介绍
- ps排版html,PS冷门技!十个不为人知的PS文本排版工具
- 我用Java写AI系列【一】百度AI账号的注册
- android sim卡联系人存储格式,Android获取手机通讯录、sim卡联系人及调用拨号界面方法...
- js toFixed
- 《视频解密》中文版(第四版) 第六章 数字视频接口(第二部分)
- PS 旋转任意角度的照片
- 成都聚华祥科技:店铺的运营分析
- 【腾讯云的1001种玩法】专为新手小白写的服务器环境配置网站教程
- SQL注入绕过之过滤了‘as‘与无列名注入