2

我正在尝试检查当前的@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:

在此处输入图像描述

4

1 回答 1

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 将重定向到它)。

但是,根据我的经验——90% 的最后一个 Outlook 版本(常规和 Outlook 预览系统)检测到错误的登录尝试并发送给您确认登录问题(代码或电子邮件)的页面。这样,您将获得不稳定的解决方案。你真的想做吗?

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

import json

data = json.loads(asdf.text)

print(data)

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

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

而且,我认为使用 Selenium 等现有库进行浏览器仿真会更快。

于 2015-12-16T19:55:31.410 回答