python 簡單驗證碼登錄(session)

mark一下平時的練習(xí)

練習(xí)網(wǎng)站:古詩文網(wǎng)站

思路:將圖片驗證碼下載到本地,手動輸入驗證碼,進(jìn)行登錄識別。

import requests
from lxml import etree

headers={
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36'
}

def get_session():
    session=requests.session()
    return session

def get_value(session):
    url='https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx'
    response=session.get(url,headers=headers)
    html=etree.HTML(response.text)
    VIEWSTATE=html.xpath('//*[@id="__VIEWSTATE"]/@value')[0]
    print(VIEWSTATE)
    return VIEWSTATE

def get_img(session):
    url='https://so.gushiwen.org/RandCode.ashx'
    response=session.get(url,headers=headers)
    with open ('code.png','wb')as f :
        f.write(response.content)


def login(VIEWSTATE,code,session):
    url = 'https://so.gushiwen.org/user/login.aspx?from=http%3a%2f%2fso.gushiwen.org%2fuser%2fcollect.aspx'
    data={
        '__VIEWSTATE':VIEWSTATE ,
        '__VIEWSTATEGENERATOR':'C93BE1AE',
        'from':'http://so.gushiwen.org/user/collect.aspx',
        'email': ##,
        'pwd': ##,
        'code': code,
        'denglu': '登錄'
    }
    response=session.post(url,headers=headers,data=data)
    if response.url=='https://so.gushiwen.org/user/collect.aspx':
        print('登入成功')
    else:
        print('登入失敗')

if __name__ == '__main__':
    session=get_session()
    VIEWSTATE=get_value(session)
    get_img(session)
    code=input('請輸入驗證碼:')
    login(VIEWSTATE,code,session)

ps:本人是小白一枚,內(nèi)容可能不太專業(yè),有不嚴(yán)謹(jǐn)?shù)牡胤秸堉更c,謝謝呢~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.破解驗證碼常見的三種方法: (1)把驗證碼下載到本地,手動輸入進(jìn)行破解 (2)Tesseract光學(xué)識別模塊:...
    來自火星的大貓閱讀 7,507評論 1 1
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,651評論 1 32
  • 本周任務(wù): 群內(nèi)預(yù)告下,我們本周要做的是職場清零,重新開始—— 1. 職場清零:假裝自己已經(jīng)失業(yè)——給自己更新一頁...
    張亞002閱讀 158評論 0 0
  • 心中最好的東西已經(jīng)逝去,經(jīng)用不會回來了。 這樣是不是很好呢? 也就沒有了期盼,沒有了幻想! 可生活還在繼續(xù) 更沒有...
    快樂的候鳥閱讀 163評論 0 0
  • 你何時再來這個世界? 我已經(jīng)等候你很久很久了 你要駕著云降臨嗎? 整個世界都看見了你 都要哀哭 你穿著白色長衣 頭...
    書拉蜜女_閱讀 281評論 0 0

友情鏈接更多精彩內(nèi)容