Python爬蟲(chóng)使用腳本登錄Github并查看信息
前言分析目標(biāo)網(wǎng)站的登錄方式
目標(biāo)地址: https://github.com/login
登錄方式做出分析:
第一,用form表單方式提交信息,
第二,有csrf_token,
第三 ,是以post請(qǐng)求發(fā)送用戶(hù)名和密碼時(shí),需要第一次get請(qǐng)求的cookie
第四,登錄成功以后,請(qǐng)求其他頁(yè)面是只需要帶第一次登錄成功以后返回的cookie就可以。
以get發(fā)送的請(qǐng)求獲取我們想要的token和cookie


代碼:
import requests
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml') #生成soup 對(duì)象
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value')
#查到我們要的token
r1_cookies = r1.cookies.get_dict() # 下次提交用戶(hù)名時(shí)用的cookie
# print(r1_cookies)
# print(s1)
#結(jié)果::
{'logged_in': 'no', '_gh_sess': 'VDFWa2hJWjFMb1hpRUFLRDVhUmc3MXg1Tk02TDhsUnhDMERuNGpyT2Y4STlQZ2xCV1lCZEFhK21wdFR1bkpGYUV0WEJzcDEydWFzcm93
aVc4Nk91Q2JicmtRV0NIQ0lRSWM4aFhrSVFYbCtCczBwdnhVN0YySVJJNUFpQnhyTzNuRkJwNDJZUWxUcEk2M2JkM3VSMDdXVHNOY1htQkthckJQZDJyUVR2RzBNUkU3VnltRVF2U
m1admU3c3YzSGlyVnVZVm0ycnA1eUhET1JRVWNLN0pSbndKWjljMGttNG5URWJ1eU8rQjZXNEMxVEthcGVObDFBY2gvc2ZzWXcvWWZab29wQWJyU0l6cmZscWhBQUlzYTA3dTRtb
3l1S0hDYytHY2V1SUhEWlZvVlZoSWZpTzBjNmlidFF2dzI2bWgtLTJON1lqbm5jWUtSYmtiVEM1clJPakE9PQ%3D%3D--897dbc36c123940c8eae5d86f276dead8318fd6c'}
pRz0wapEbu5shksGCeSN0FijWoU9ALw8EPUsXlqgcw1Ezirl0VbSKvkTYqIe8VhxhPH2H/uzGaV6XX+yjTGoVA==
獲取這兩個(gè)值就可以,進(jìn)行下一步發(fā)送登錄請(qǐng)求:
第二步post方式提交用戶(hù)名密碼


代碼::
這個(gè)代碼接著上面的get請(qǐng)求,只是post請(qǐng)求的部分,
r2 = requests.post(
'https://github.com/session',
data ={
'commit':'Sign in',
'utf8':'✓',
'authenticity_token':s1,
'login':'541756569@qq.com',
'password':'用戶(hù)名密碼' # 填上正確的用戶(hù)名即可
},
cookies = r1.cookies.get_dict(), # 這里需要第一次的cookie
)
print(r2.cookies.get_dict()) # 這個(gè)是成功以后的cookie
成功以后就返回登錄頁(yè)面的信息。
基于post登錄成功后查看個(gè)人詳情頁(yè)。
這里只需要帶著登錄成功以后的cookie 就可以
#完整代碼
import requests
from bs4 import BeautifulSoup
r1 = requests.get('https://github.com/login')
soup = BeautifulSoup(r1.text,features='lxml')
s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value')
r1_cookies = r1.cookies.get_dict()
print(r1_cookies)
print(s1)
r2 = requests.post(
'https://github.com/session',
data ={
'commit':'Sign in',
'utf8':'✓',
'authenticity_token':s1,
'login':'541756569@qq.com',
'password':'密碼'
},
cookies = r1.cookies.get_dict(),
)
查看個(gè)人詳情頁(yè)
print(r2.cookies.get_dict())
r3 = requests.get(
'https://github.com/13131052183/product', #查看個(gè)人的詳情頁(yè)
cookies = r2.cookies.get_dict()
)
print(r3.text)
總結(jié)
以上所述是小編給大家介紹的Python爬蟲(chóng)使用腳本登錄Github并查看信息,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- python 模擬登陸github的示例
- Python基于Webhook實(shí)現(xiàn)github自動(dòng)化部署
- GitHub上值得推薦的8個(gè)python 項(xiàng)目
- Python 通過(guò)爬蟲(chóng)實(shí)現(xiàn)GitHub網(wǎng)頁(yè)的模擬登錄的示例代碼
- Python3以GitHub為例來(lái)實(shí)現(xiàn)模擬登錄和爬取的實(shí)例講解
- python requests模擬登陸github的實(shí)現(xiàn)方法
- 使用Python快樂(lè)學(xué)數(shù)學(xué)Github萬(wàn)星神器Manim簡(jiǎn)介
- 如何利用Python模擬GitHub登錄詳解
- 使用GitHub和Python實(shí)現(xiàn)持續(xù)部署的方法
- GitHub 熱門(mén):Python 算法大全,Star 超過(guò) 2 萬(wàn)
- 使用 Python 玩轉(zhuǎn) GitHub 的貢獻(xiàn)板(推薦)
- Python基于identicon庫(kù)創(chuàng)建類(lèi)似Github上用的頭像功能
- python使用心得之獲得github代碼庫(kù)列表
- 如何用 Python 制作 GitHub 消息助手
相關(guān)文章
Linux系統(tǒng)中設(shè)置Python程序開(kāi)機(jī)啟動(dòng)的兩種方式
在 Linux 系統(tǒng)中設(shè)置Python 腳本開(kāi)機(jī)啟動(dòng),通??梢酝ㄟ^(guò)以下幾種方式實(shí)現(xiàn), 使用 systemd(推薦方式)和使用 crontab(對(duì)于簡(jiǎn)單任務(wù)),文章通過(guò)代碼示例給大家講解的非常詳細(xì),需要的朋友可以參考下2024-05-05
創(chuàng)建Shapefile文件并寫(xiě)入數(shù)據(jù)的例子
今天小編就為大家分享一篇?jiǎng)?chuàng)建Shapefile文件并寫(xiě)入數(shù)據(jù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
強(qiáng)烈推薦好用的python庫(kù)合集(全面總結(jié))
這篇文章主要為大家介紹了強(qiáng)烈推薦非常好用的python庫(kù)合集(全面總結(jié)),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05
Python 開(kāi)發(fā)工具通過(guò) agent 代理使用的方法
這篇文章主要介紹了Python 開(kāi)發(fā)工具通過(guò) agent 代理使用的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-09-09
pytorch查看torch.Tensor和model是否在CUDA上的實(shí)例
今天小編就為大家分享一篇pytorch查看torch.Tensor和model是否在CUDA上的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Django項(xiàng)目使用CircleCI的方法示例
這篇文章主要介紹了Django項(xiàng)目使用CircleCI的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
利用python進(jìn)行接口測(cè)試及類(lèi)型介紹
這篇文章主要介紹了利用python進(jìn)行接口測(cè)試詳情,文章基于python展開(kāi)對(duì)接口測(cè)試的詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
python接口調(diào)用已訓(xùn)練好的caffe模型測(cè)試分類(lèi)方法
今天小編就為大家分享一篇python接口調(diào)用已訓(xùn)練好的caffe模型測(cè)試分類(lèi)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08
python實(shí)現(xiàn)與Oracle數(shù)據(jù)庫(kù)交互操作示例
這篇文章主要為大家介紹了python實(shí)現(xiàn)與Oracle數(shù)據(jù)庫(kù)交互操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家,多多進(jìn)步,早日升職加薪2021-10-10

