最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python(Tornado)模擬登錄小米搶手機

 更新時間:2013年11月12日 09:18:41   作者:  
用Python(Tornado)模擬登錄小米帳號,搶小米手機
今天看到同事參與小米的搶購,幾經(jīng)數(shù)個星期的嘗試,終于搶到了一臺小米電視……看了一下小米的搶購流程,似乎可以用程序可破。于是想寫點東西玩玩(你懂的……),第一步肯定是先得模擬登錄小米帳號,當(dāng)練手吧。
用 Python 來實現(xiàn)吧,由于是寫一個Web應(yīng)用,那么框架就選 Tornado。
首先是定義應(yīng)用的 URL:
復(fù)制代碼 代碼如下:

def main():
    tornado.options.parse_command_line()
    application = tornado.web.Application([
        (r"/", MainHandler),
        (r"/mibuy/", MiBuyHandler),
    ],**settings)
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()

接下來就是尋找需要 post 過去的數(shù)據(jù),用 Fiddler 來嗅探一下:

也就是說,POST 的地址是 https://account.xiaomi.com/pass/serviceLoginAuth2

需要構(gòu)造的表單參數(shù)也很簡單(已進行 URL 編碼):passToken=&user=www.nowamagic.net&pwd=password&callback=https%3A%2F%2Faccount.xiaomi.com&sid=passport&qs=%253Fsid%253Dpassport&hidden=&_sign=KKkRvCpZoDC%2BgLdeyOsdMhwV0Xg%3D。即:
復(fù)制代碼 代碼如下:

post_data = urllib.urlencode({'passToken':'', 'user': 'www.nowamagic.net', 'pwd': 'password', 'callback':'https://account.xiaomi.com', 'sid':'passport', 'qs':'%3Fsid%3Dpassport', 'hidden':'', '_sign':'KKkRvCpZoDC+gLdeyOsdMhwV0Xg='})
path = 'https://account.xiaomi.com/pass/serviceLoginAuth2'

接下來函數(shù)也可以寫出來了:
復(fù)制代碼 代碼如下:

class MiBuyHandler(tornado.web.RequestHandler):
    def get(self):
        cj = cookielib.CookieJar()
        post_data = urllib.urlencode({'passToken':'', 'user': 'www.nowamagic.net', 'pwd': 'password', 'callback':'https://account.xiaomi.com', 'sid':'passport', 'qs':'%3Fsid%3Dpassport', 'hidden':'', '_sign':'KKkRvCpZoDC+gLdeyOsdMhwV0Xg='})
        path = 'https://account.xiaomi.com/pass/serviceLoginAuth2'
        cookieHandle = urllib2.HTTPCookieProcessor(cj)
        opener = urllib2.build_opener(cookieHandle)
        #opener.addheaders = [('User-agent', 'Opera/9.23')]
        urllib2.install_opener(opener)
        req = urllib2.Request(path, post_data)
        response = urllib2.urlopen(req)
        html = response.read()
        self.render("mibuy.html",message=html)

如何需要把 cookie 打印出來,直接 print cj 就可以看到 cookie 的內(nèi)容。
接下來的事情貌似也很簡單,就是解析 hdcontrol (URL:http://tc.hd.xiaomi.com/hdget?callback=hdcontrol) 這個 json。
復(fù)制代碼 代碼如下:

hdcontrol(
{
 stime: 1383645496,
 status: {
  allow: true,
  miphone: {
   hdurl: "",
   duration: null,
   hdstop: true,
   reg: true,
   pmstart: false,
   hdstart: false
  },
  mibox: {
   hdurl: "",
   duration: null,
   hdstop: true,
   reg: true,
   pmstart: false,
   hdstart: false
  },
  mitv: {
   hdurl: "",
   duration: null,
   hdstop: true,
   reg: false,
   pmstart: false,
   hdstart: false
  }
 }
})

當(dāng) allow 為 true 的時候,hdurl 會有值,比如 ?_a=20131105_phone_a212a2b30e5&_op=choose&_s=72b686828&_m=1 之類的,這個就是真實的搶購地址,直接訪問這個地址應(yīng)該就不用再點排隊的按鈕。僅當(dāng)拋磚引玉,懂程序的各位都該知道怎么辦了吧……
僅僅適用于目前(2013年11月),后續(xù)小米那邊可能會改變一些規(guī)則。

相關(guān)文章

  • Python對象與引用的介紹

    Python對象與引用的介紹

    今天小編就為大家分享一篇關(guān)于Python對象與引用的介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python生成ppt的方法

    python生成ppt的方法

    這篇文章主要為大家詳細介紹了python生成ppt的方法,通過python生成ppt文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python中slice參數(shù)過長的處理方法及實例

    python中slice參數(shù)過長的處理方法及實例

    在本篇文章里小編給大家分享了一篇關(guān)于python中slice參數(shù)過長的處理方法及實例內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-12-12
  • Python3操作Excel文件(讀寫)的簡單實例

    Python3操作Excel文件(讀寫)的簡單實例

    這篇文章主要給大家介紹了關(guān)于Python3操作Excel文件(讀寫)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Python3具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Python發(fā)送郵件測試報告操作實例詳解

    Python發(fā)送郵件測試報告操作實例詳解

    這篇文章主要介紹了Python發(fā)送郵件測試報告操作,結(jié)合實例形式較為詳細的分析了Python郵件發(fā)送相關(guān)模塊使用及操作注意事項,需要的朋友可以參考下
    2018-12-12
  • pandas讀取csv格式數(shù)據(jù)時header參數(shù)設(shè)置方法

    pandas讀取csv格式數(shù)據(jù)時header參數(shù)設(shè)置方法

    本文主要介紹了pandas讀取csv格式數(shù)據(jù)時header參數(shù)設(shè)置方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python 對象中的數(shù)據(jù)類型

    Python 對象中的數(shù)據(jù)類型

    對于python,一切事物都是對象,程序中存儲的所有數(shù)據(jù)都是對象,對象基于類創(chuàng)建。這篇文章主要介紹了Python 對象之?dāng)?shù)據(jù)類型 ,需要的朋友可以參考下
    2017-05-05
  • python爬蟲反爬之圖片驗證功能實現(xiàn)

    python爬蟲反爬之圖片驗證功能實現(xiàn)

    這篇文章主要介紹了python爬蟲反爬之圖片驗證功能實現(xiàn),本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03
  • python按順序重命名文件并分類轉(zhuǎn)移到各個文件夾中的實現(xiàn)代碼

    python按順序重命名文件并分類轉(zhuǎn)移到各個文件夾中的實現(xiàn)代碼

    這篇文章主要介紹了python按順序重命名文件并分類轉(zhuǎn)移到各個文件夾中,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • python中三種輸出格式總結(jié)(%,format,f-string)

    python中三種輸出格式總結(jié)(%,format,f-string)

    在Python語言編程中,我們會與字符串打交道,那務(wù)必會輸出字符串來查看字符串的內(nèi)容,下面這篇文章主要給大家介紹了關(guān)于python中三種輸出格式的相關(guān)資料,三種格式分別是%,format,f-string,需要的朋友可以參考下
    2022-03-03

最新評論

武城县| 商城县| 甘泉县| 铁力市| 贺州市| 屏东市| 玉山县| 固始县| 井研县| 故城县| 榆社县| 黄石市| 沾化县| 桃江县| 赫章县| 巫山县| 南昌市| 合肥市| 句容市| 宿松县| 大安市| 巴彦县| 民和| 鸡西市| 莱阳市| 开鲁县| 南投县| 通州区| 姚安县| 墨脱县| 孝昌县| 望都县| 城固县| 舞钢市| 塔河县| 仁布县| 德庆县| 安阳县| 花莲市| 永定县| 澳门|