requests模拟登录豆瓣

这篇博客详细介绍了如何使用Python的requests库模拟登录豆瓣的过程。首先通过Chrome开发者工具捕获登录请求,重点关注POST请求及包含的Cookie、Header和Form Data信息。接着,创建一个Login类,利用requests.Session来实现模拟登录,包括设置请求头、POST登录信息,并通过访问用户设置页面检查登录状态。最后,提供了完整的Python代码示例。
摘要由CSDN通过智能技术生成

首先打开豆瓣官网,并打开 chrome 的开发者工具,选中 network 选项卡,然后选中 preserve log 选项,这样在跳转页面的时候就不会刷掉之前的请求。不然登录之后处理登录的请求就会被刷新掉从而无法获取。当然,这里也有一个更方便的方法,就是在输入密码的时候输错一位(当然,全部输错也可以),然后发现一个 basic 请求,打开这个请求的详细信息,发现这是一个 POST 请求,也就是处理我们登录的请求。在这里插入图片描述
在请求头中包含了 Cookie, Host, Origin, Referer, User-Agent 等信息,Form Data 中包含了五个字段,其中 ck 和 ticket 两个字段为空,可以不用管,name 和 password 分别是用户名和密码,需要输入自己的用户名和密码,remember 是一个布尔值,是是否保存密码。
既然请求已经分析完毕,那么只需要使用 requests.Session 就可以完成模拟登录了。
首先引入相关库

import re
import requests
from lxml import etree

然后创建一个 Login 类,用来模拟登录豆瓣,将请求头信息以及 requests.Session 对象都封装为实例属性,并将请求登录的 URL 和 登录后访问的 URL 一并写为实例属性。

    def __init__(self):
        # 设置请求头
        self.headers = {
   
            'Referer': 'https://accounts.douban.com/passport/login_popup?login_source=anony',
            'Host': 'accounts.douban.com',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
        }
        # 使用 requests.Session 模拟登录
        self.session = requests.Session()
        # 请求登录的 URL
        self.post_url = 'https://accounts.douban.com/j/mobile/login/basic'
        # 登录成功之后访问的 URL
        self.logined_url = '
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值