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,謝謝呢~