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

   原理

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

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

3. 把c2更新到c1;github

4. 携带c1能够访问后台cookie

 

   方法

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)
相关文章
相关标签/搜索