账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    python模拟微博app登陆,获取登陆后的cookie
    • 2020-01-01 00:00
    • 11
    32
    0

    问题:模拟post的参数全部正确,但是返回的结果是错误的,登陆后的页面内容是错误的.

    代码:

    -- coding: utf-8 --

    import requests
    import random
    import json
    import re
    from bs4 import BeautifulSoup

    def main():

    session = requests.session()
    headers = {
        'Host': 'passport.weibo.cn',
        'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0',
        'Accept': '*/*',
        'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
        'Accept-Encoding': 'gzip, deflate, br',
        'Referer': 'https://passport.weibo.cn/signin/login?entry=mweibo&res=wel&wm=3349&r=https%3A%2F%2Fm.weibo.cn%2F',
        'Content-Type': 'application/x-www-form-urlencoded',
        'Content-Length': '265',
        'Connection': 'keep-alive',
        'Cookie': '_T_WM=41c35829ff5adce940a2977a2b866de1; login=9da7cd806ada2c22779667e8e1c039c2; MLOGIN=0; WEIBOCN_FROM=1110006030; M_WEIBOCN_PARAMS=uicode%3D10000011%26fid%3D102803'
    }
    post_data = {
        'username': '',
        'password': '',
        'savestate': '1',
        'r': 'https://m.weibo.cn/',
        'ec': '0',
        'pagerefer': 'https://m.weibo.cn/login?backURL=https%253A%252F%252Fm.weibo.cn%252F',
        'entry': 'mweibo',
        'wentry': '',
        'loginfrom': '',
        'client_id': '',
        'code': '',
        'qq': '',
        'mainpageflag': '1',
        'hff': '',
        'hfp': ''
    
    }
    login_url = 'https://passport.weibo.cn/signin/login'
    username = input('请输入用户名:\n')
    password = input('请输入密码:\n')
    post_data['username'] = username
    post_data['password'] = password
    r = session.post(login_url, data=post_data, headers=headers)
    cookies=requests.utils.dict_from_cookiejar(session.cookies)
    print(cookies)
    print(r.content.decode('gbk'))
    with open('cookies.json', 'wb') as f:
        # 保存cookies到本地
        f.write((json.dumps(cookies).encode("utf-8")))
        # f.write(json.dumps(cookies))
        print("保存成功")
    
    

    if name == '__main__':

    main()
    
    这个是登陆成功或不成功状态码都是200,然后返回的内容不是登录成功的界面.cookie错误.
    求各位大佬解答.或者帮忙小弟测试一下.实在整不明白了.
    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 11 元积分
        全部回答
    • 0
    • 要模拟微博APP的登录,我们可以使用Python的requests库和BeautifulSoup库来获取登录后的cookie。以下是一个简单的示例:

      首先,你需要在微博的API文档中找到你需要的APIURL。假设你需要获取"access_token"和"uid"这两个cookie。

      然后,你可以使用以下代码来模拟登录:

      ```python import requests from bs4 import BeautifulSoup

      获取登录后的cookie

      url = 'https://api.weibo.com/2/Account/GetAccessToken' response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser')

      获取access_token和uid

      access_token = soup.find('input', {'name': 'access_token'}).value uid = soup.find('input', {'name': 'uid'}).value

      print('Access Token:', access_token) print('uid:', uid) ```

      在这个示例中,我们首先发送一个GET请求到微博的APIURL,获取登录后的cookie。然后,我们使用BeautifulSoup来解析这个响应的HTML,找到并获取access_token和uid这两个cookie。

      注意:这个示例假设你的微博APIURL是一个包含这两个cookie的URL。如果你的APIURL不包含这两个cookie,你需要在请求头中添加相应的字段,如Authorization

      此外,这个示例也假设你的微博登录表单有这两个字段。如果你的登录表单有不同的字段,你可能需要修改代码来适应你的需求。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部