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

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

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

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 過去的數據,用 Fiddler 來嗅探一下:

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

需要構造的表單參數也很簡單(已進行 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。即:
復制代碼 代碼如下:

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'

接下來函數也可以寫出來了:
復制代碼 代碼如下:

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 的內容。
接下來的事情貌似也很簡單,就是解析 hdcontrol (URL:http://tc.hd.xiaomi.com/hdget?callback=hdcontrol) 這個 json。
復制代碼 代碼如下:

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
  }
 }
})

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

相關文章

  • Python對象與引用的介紹

    Python對象與引用的介紹

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

    python生成ppt的方法

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

    python中slice參數過長的處理方法及實例

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

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

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

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

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

    pandas讀取csv格式數據時header參數設置方法

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

    Python 對象中的數據類型

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

    python爬蟲反爬之圖片驗證功能實現

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

    python按順序重命名文件并分類轉移到各個文件夾中的實現代碼

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

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

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

最新評論

漯河市| 安泽县| 肃宁县| 深水埗区| 苍梧县| 柞水县| 军事| 盱眙县| 慈利县| 当雄县| 左云县| 锦州市| 舒城县| 商河县| 临澧县| 云阳县| 琼海市| 扎鲁特旗| 依安县| 海宁市| 五指山市| 新邵县| 忻城县| 锡林浩特市| 基隆市| 南漳县| 慈溪市| 洛隆县| 舞阳县| 河曲县| 张家口市| 高雄市| 长乐市| 沙河市| 义马市| 西平县| 盐城市| 道孚县| 宜兴市| 兴义市| 枝江市|