爬蟲基礎——示例:登錄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)
相關文章
相關標籤/搜索