如何从python

时间:2015-12-14 01:52:14

标签: 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=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时给我的:

Chrome Response

这是我的剧本给我的信息testfoobar1234@hotmail.com:

enter image description here

1 个答案:

答案 0 :(得分:0)

如果您想通过本地计算机上的python脚本连接到login.live.com并使用正确的凭据但Chrome中的Cookie也无法使用。

您想要做什么:阅读电子邮件,发送电子邮件或从地址簿中获取联系人。脚本中的算法会有所不同。例如,通过outlook.com系统提供的邮件,位于people.live.com的联系人(以及我记得的API)。

如果你想像Chrome那样进行模拟登录,你需要:

  1. 从outlook.com主页获取并收集所有Cookie,不要忘记所有重定向:) - 通过您的python脚本
  2. 将收集过的Cookie和凭据的请求发送到login.live.com(outlook将重定向到它)。
  3. 但是,根据我的经验 - 90%的最新Outlook版本(常规和Outlook预览系统)检测到错误的登录尝试并发送到您的页面并确认登录问题(代码或电子邮件)。那样你就会有不稳定的解决方案。你真的想做吗?

    如果你只想解析JSON,你需要:

    import json
    
    data = json.loads(asdf.text)
    
    print(data)
    

    如果您想查看,浏览器产生了多少操作,只需安装Firebug并禁用清洁“网络”面板,然后查看在您登录帐户之前处理的请求数量。

    但是,看到所有流量建议使用Firefox + Firebug + Tamper Data。

    而且,我认为更快的是使用像Selenium这样的库来进行浏览器仿真。