|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
一下是我的代码。我想使用requests的session功能模拟登录明日科技网页里的个人主页,但我不知道我这段代码哪里出问题了始终无法成功。哪位老师能帮我看看万分感谢。
# coding=utf-8
import requests
from lxml import etree
session = requests.Session()
url = 'https://passport.mingrisoft.com/login/index.html?tpl=sch'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'}
post_url = 'https://passport.mingrisoft.com/Login/checkLogin'
post_headers = {
'Host': 'passport.mingrisoft.com',
'Origin': 'https://passport.mingrisoft.com',
'Referer': 'https://passport.mingrisoft.com/login/index.html?tpl=sch',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36'
}
html_str = requests.get(url,headers=headers,verify=False).content.decode()
html = etree.HTML(html_str)
img_src ='https://passport.mingrisoft.com'+ html.xpath('//*[@id="imgcode"]/@src')[0]
img_str = requests.get(img_src,headers=headers,verify=False).content
with open('yanzhengma.jpg','wb') as f:
yanzheng_jpg = f.write(img_str)
data = {
'username': '账号',
'password': '密码',
'code': input('输入验证码'),
'rempwd': 'true'
}
s_headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.41 Safari/537.36',
'Host': 'www.mingrisoft.com',
'Referer': 'https://passport.mingrisoft.com/'
}
session.post(post_url,data=data,headers=post_headers,verify=False)
res1 = session.get('https://www.mingrisoft.com/',headers=s_headers,verify=False).content.decode()
print(res1)
本帖最后由 suchocolate 于 2022-5-14 22:42 编辑
session如果使用的话,要贯穿始终,比如这样: # coding=utf-8
import requests
import time
def main():
url = 'https://passport.mingrisoft.com/login/index.html?tpl=sch'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) '
'AppleWebKit/537.36 (KHTML, like Gecko) '
'Chrome/101.0.4951.41 Safari/537.36'}
s = requests.Session()
s.get(url, headers=headers, verify=False) # 先访问一下,让session获取到cookie
time.sleep(3)
r = s.get('https://passport.mingrisoft.com/captcha.html', verify=False) # 再次发起访问,获取验证码图片
with open('code.png', 'wb') as f: # 保存图片,人工打开图片,看看内容,然后在下面输入
f.write(r.content)
f.close()
code = input('请输入验证码:')
data = {
'username': '账号',
'password': '密码', # 看过了,密码是经过加密,加密方式还不清楚。
'code': code,
'rempwd': 'true'
}
r = s.post('https://passport.mingrisoft.com/Login/checkLogin', data=data, verify=False) # 正式登陆
print(r.status_code)
with open('r.txt', 'w') as f:
f.write(r.text)
if __name__ == "__main__":
main()
f12看过了网站,网站不接受明文密码,只接受加密的密码,加密方式需要研究一下网页的加密逻辑。
|
|