如何使用python从post获取响应

如何使用python从post获取响应,python,json,request,urllib,outlook.com,Python,Json,Request,Urllib,Outlook.com,我正在检查是否使用了当前的@hotmail.com地址 然而,我并没有得到使用chrome开发者工具会得到的回应 #!/usr/bin/python import urllib import urllib2 import requests cookies = { 'MC0': '1449950274804', 'mkt': 'en-US', 'MSFPC': 'ID=a9b016cd39838248bbf321ea5ad1ecae&CS=1&LV=20

我正在检查是否使用了当前的@hotmail.com地址

然而,我并没有得到使用chrome开发者工具会得到的回应

#!/usr/bin/python

import urllib
import urllib2
import requests

cookies = {
    'MC0': '1449950274804',
    'mkt': 'en-US',
    'MSFPC': 'ID=a9b016cd39838248bbf321ea5ad1ecae&CS=1&LV=201512&V=1',
    'wlv': 'A|ekIL-d:s*cAHzDg.2+1+0+3',
    'HIC': '7c5d20284ecdbbaa||0|||',
    'wlxS': 'wpc=1&WebIM=1',
    'RVC': 'm=1&v=17.5.9510.1001&t=12/12/2015 20:37:45',
    'amcanary': '0',
    'CkTst': 'MX1449957709484',
    'LDH': '9',
    'wla42': 'KjEsN0M1RDIwMjg0RUNEQkJBQSwsLDAsLTEsLTE=',
    'LN': 'u9GMx1450021043143',
}

headers = {
        'Origin': 'https://signup.live.com',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'en-US,en;q=0.8,ja;q=0.6',

    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36',
    'canary': 'aeIntzIq6OCS9qOE2KKP2G6Q7yCCPLAQVPIw0oy2Vksln3bbwVR9I8DcpfzC9RiCnNiJBw4YxtWsqJfnx0PeR9ovjRG+bF1jKkyPVWUTyuDTO5UkwRNNJFTIdeaClMgHtATSy+gI99ojsAKwuRFBMNbOgCwZIMCRCmky/voftX/63gjTqC9V5Ry/bECc2P66ouDZNC7TA/KN6tfsmszelEoSrmvU7LAKDoZnkhRQjpn6WYGxUzr5S+UYXExa32AY:1:3c',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'Accept': 'application/json',
    'Referer': 'https://signup.live.com/signup?wa=wsignin1.0&rpsnv=12&ct=1450038320&rver=6.4.6456.0&wp=MBI_SSL_SHARED&wreply=https',
    'X-Requested-With': 'XMLHttpRequest',
    'Connection': 'keep-alive',
}

data = {"signInName":"testfoobar1234@outlook.com","uaid":"f1d115020fc94af6ba17e722277cdcb8","performDisambigCheck":"true","includeSuggestions":"true","uiflvr":"1001","scid":"100118","hpgid":"200407"}

asdf = requests.post('https://signup.live.com/API/CheckAvailableSigninNames?wa=wsignin1.0&rpsnv=12&ct=1450038320&rver=6.4.6456.0&wp=MBI_SSL_SHARED&wreply=https', headers=headers, cookies=cookies, data=data)
print(asdf.json())
这是chrome在检查时给我的信息testfoobar1234@hotmail.com:

这就是我的脚本给我的testfoobar1234@hotmail.com:


如果您想通过本地计算机上的python脚本连接到login.live.com,并使用正确的凭据,但Chrome上的Cookie——这是行不通的

你想做什么:阅读电子邮件,发送电子邮件,或只是从通讯录中获取联系人。脚本中的算法将有所不同。例如,通过outlook.com系统提供的邮件、位于people.live.com的联系人(以及我记得很清楚的API)

如果您想像Chrome那样模拟登录,您需要:

import json

data = json.loads(asdf.text)

print(data)
  • 从outlook.com主页获取并收集所有cookie,不要忘记所有重定向:)-通过python脚本
  • 将包含收集的cookie和凭据的请求发送到login.live.com(outlook将重定向到该请求) 但是,根据我的经验——上一个Outlook版本(常规和Outlook预览系统)在90%中检测到错误的登录尝试,并发送给您带有确认登录问题(代码或电子邮件)的页面。这样,您将得到不稳定的解决方案。你真的想这么做吗

    如果您只想正确解析JSON,则需要:

    import json
    
    data = json.loads(asdf.text)
    
    print(data)
    
    若你们想看看浏览器产生了多少动作,只需安装Firebug并禁用清理“网络”面板,然后看看在你们登录到你们的帐户之前处理了多少请求

    但是,为了查看所有流量,建议使用Firefox+Firebug+篡改数据

    而且,我认为使用诸如Selenium之类的现有LIB进行浏览器模拟会更快