Python爬蟲使用腳本登錄Github并查看信息
前言分析目標網(wǎng)站的登錄方式
目標地址: https://github.com/login
登錄方式做出分析:
第一,用form表單方式提交信息,
第二,有csrf_token,
第三 ,是以post請求發(fā)送用戶名和密碼時,需要第一次get請求的cookie
第四,登錄成功以后,請求其他頁面是只需要帶第一次登錄成功以后返回的cookie就可以。
以get發(fā)送的請求獲取我們想要的token和cookie
代碼:
import requests from bs4 import BeautifulSoup r1 = requests.get('https://github.com/login') soup = BeautifulSoup(r1.text,features='lxml') #生成soup 對象 s1 = soup.find(name='input',attrs={'name':'authenticity_token'}).get('value') #查到我們要的token r1_cookies = r1.cookies.get_dict() # 下次提交用戶名時用的cookie # print(r1_cookies) # print(s1)
#結(jié)果::
{'logged_in': 'no', '_gh_sess': 'VDFWa2hJWjFMb1hpRUFLRDVhUmc3MXg1Tk02TDhsUnhDMERuNGpyT2Y4STlQZ2xCV1lCZEFhK21wdFR1bkpGYUV0WEJzcDEydWFzcm93 aVc4Nk91Q2JicmtRV0NIQ0lRSWM4aFhrSVFYbCtCczBwdnhVN0YySVJJNUFpQnhyTzNuRkJwNDJZUWxUcEk2M2JkM3VSMDdXVHNOY1htQkthckJQZDJyUVR2RzBNUkU3VnltRVF2U m1admU3c3YzSGlyVnVZVm0ycnA1eUhET1JRVWNLN0pSbndKWjljMGttNG5URWJ1eU8rQjZXNEMxVEthcGVObDFBY2gvc2ZzWXcvWWZab29wQWJyU0l6cmZscWhBQUlzYTA3dTRtb 3l1S0hDYytHY2V1SUhEWlZvVlZoSWZpTzBjNmlidFF2dzI2bWgtLTJON1lqbm5jWUtSYmtiVEM1clJPakE9PQ%3D%3D--897dbc36c123940c8eae5d86f276dead8318fd6c'} pRz0wapEbu5shksGCeSN0FijWoU9ALw8EPUsXlqgcw1Ezirl0VbSKvkTYqIe8VhxhPH2H/uzGaV6XX+yjTGoVA==
獲取這兩個值就可以,進行下一步發(fā)送登錄請求:
第二步post方式提交用戶名密碼
代碼::
這個代碼接著上面的get請求,只是post請求的部分,
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(), # 這里需要第一次的cookie ) print(r2.cookies.get_dict()) # 這個是成功以后的cookie
成功以后就返回登錄頁面的信息。
基于post登錄成功后查看個人詳情頁。
這里只需要帶著登錄成功以后的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(), )
查看個人詳情頁
print(r2.cookies.get_dict()) r3 = requests.get( 'https://github.com/13131052183/product', #查看個人的詳情頁 cookies = r2.cookies.get_dict() ) print(r3.text)
總結(jié)
以上所述是小編給大家介紹的Python爬蟲使用腳本登錄Github并查看信息,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
- python 模擬登陸github的示例
- Python基于Webhook實現(xiàn)github自動化部署
- GitHub上值得推薦的8個python 項目
- Python 通過爬蟲實現(xiàn)GitHub網(wǎng)頁的模擬登錄的示例代碼
- Python3以GitHub為例來實現(xiàn)模擬登錄和爬取的實例講解
- python requests模擬登陸github的實現(xiàn)方法
- 使用Python快樂學數(shù)學Github萬星神器Manim簡介
- 如何利用Python模擬GitHub登錄詳解
- 使用GitHub和Python實現(xiàn)持續(xù)部署的方法
- GitHub 熱門:Python 算法大全,Star 超過 2 萬
- 使用 Python 玩轉(zhuǎn) GitHub 的貢獻板(推薦)
- Python基于identicon庫創(chuàng)建類似Github上用的頭像功能
- python使用心得之獲得github代碼庫列表
- 如何用 Python 制作 GitHub 消息助手
相關(guān)文章
python的getattr和getattribute攔截內(nèi)置操作實現(xiàn)
在Python中,getattr和getattribute是用于動態(tài)屬性訪問和自定義屬性訪問行為的重要工具,本文主要介紹了python的getattr和getattribute攔截內(nèi)置操作實現(xiàn),具有一定的參考價值,感興趣的可以了解一下2024-01-01基于DataFrame篩選數(shù)據(jù)與loc的用法詳解
今天小編就為大家分享一篇基于DataFrame篩選數(shù)據(jù)與loc的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05