爬虫基础——示例:登陆github

本文介绍了一种使用Python的requests库和BeautifulSoup库实现GitHub自动化登录的方法。首先通过GET请求获取登录页面并解析得到csrf令牌,然后使用POST请求携带用户名、密码及csrf令牌完成登录过程,最后利用获取的cookie访问个人页面。

   原理

1. 登陆github,获取csrf,cookie (c1);

2. 发用post请求登陆,携带用户密码和csrf,cookie(c1),进行授权,并获取cookie(c2);

3. 把c2更新到c1;

4. 携带c1可以访问后台

 

   方法

import requests
from bs4 import BeautifulSoup

# 第一步  获取 csrf
r1 = requests.get(url="https://github.com/login")
soup = BeautifulSoup(r1.text, features="html.parser")
token= soup.find(name="input", attrs={"name": "authenticity_token"}).attrs.get("value")

r1_cookie = r1.cookies.get_dict()


# 第二步 发送post请求,携带用户和密码,携带cookie,后台进行授权
r2 = requests.post(
    url="https://github.com/session",
    cookies=r1_cookie,
    data={
        'commit': 'Sign in',
        'utf8': '',
        'authenticity_token': token,
        'login': 'xxxxxxxxx',
        'password': 'xxxxxxxx',
    }
)
# 根据状态码
# 响应头 location
# 错误提示  判断是否登陆成功

print(r2.status_code)
r2_cookie = r2.cookies.get_dict()
r1_cookie.update(r2_cookie)


# 第三步:范文个人页面,携带cookie

r3 = requests.get(
    url="https://github.com/gaoshao52/SamCRM",
    cookies=r1_cookie
)

print(r3.text)

 

转载于:https://www.cnblogs.com/gaosy-math/p/9389540.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值