mark一下平时的练习
练习网站:古诗文网站
思路:将图片验证码下载到本地,手动输入验证码,进行登录识别。
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:本人是小白一枚,内容可能不太专业,有不严谨的地方请指点,谢谢呢~