python requests session 实现模拟登录登录失败,无法获得需要内容

 woshishuia小姐 发布于 2022-11-05 02:46

需要模拟登录okcoin,遇到了一些问题,希望大家指点O>_有参考百度的登录方式,先获取了页面cookie才用post的,但还是没有成功,获取的仍然是登录前的页面,那要怎样才能实现okcoin的模拟登录?
附上代码片段,恳请大家指教,不胜感激~~~~

 def __init__(self, loginName='*******', password='******'):
        self.header = {
            'Host': 'www.okcoin.cn',
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:42.0) Gecko/20100101 Firefox/42.0',
            'Accept': '*/*',
            'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
            'Accept-Encoding': 'gzip, deflate',
            'Connection': 'keep-alive',
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'Pragma': 'no-cache',
            'Cache-Control': 'no-cache'
        }
        self.loginData = {
            'loginName': loginName,
            'password': password
        }
    def login(self):
        session = requests.session()
        number = random.randint(11,99)
        self.loginData.update({'random':number})
        session.get('https://www.okcoin.cn/')
        #session.get('https://www.okcoin.cn/user/login/index.do?random='+str(number))
        #session.get('https://www.okcoin.cn/trade/ltc.do')
        session.post('https://www.okcoin.cn/user/login/index.do?random='+str(number), data=self.loginData, headers=self.header)
        html = session.get('https://www.okcoin.cn/trade/ltc.do')
        return html
1 个回答
  • 加上referer试试,另外模拟一下ticker.do这个请求,可能是用来刷新sessionID的。

    模拟登陆什么的。。多抓包。。好好模拟网络请求不要偷懒就没啥难度了.....

    2022-11-08 22:47 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有