您好,登錄后才能下訂單哦!
要買IPhone7主要有三個途徑吧,一是官網下單;二是官網預約,直營店取貨;三是第三方渠道。第一個渠道需要等3-4周,而且是直接快遞過來,方便是方便,缺點主要是對物流不放心和怕遇到瑕疵機器退換貨麻煩,優點是可以信用卡12期免息付款。第三個渠道加價且不放心。預約去直營店取機就是唯一選擇。
預約是唯一的問題,官網上的預約號是不定時發放,基本剛出來幾分鐘就被搶走。編程改變世界,于是我用python寫了一個查詢腳本,在蘋果放票的第一時間通過蜂鳴器通知搶預約。
python代碼如下
#!/usr/bin/env python3 #encoding=utf8 import pycurl import certifi import json import time import ctypes from io import BytesIO def link(url, b): # print pycurl.version_info() # 這個函數創建一個同 libcurl中的CURL處理器相對應的Curl對象.Curl對象自動的設置CURLOPT_VERBOSE為0, CURLOPT_NOPROGRESS為1,提供一個默認的CURLOPT_USERAGENT和設置CURLOPT_ERRORBUFFER指向一個私有的錯誤緩沖區. c = pycurl.Curl() # 創建一個同libcurl中的CURL處理器相對應的Curl對象 c.setopt(pycurl.CAINFO, certifi.where()) c.setopt(pycurl.URL, url) # 設置要訪問的網址 url = "http://www.cnn.com" # 寫的回調 c.setopt(pycurl.WRITEFUNCTION, b.write) c.setopt(pycurl.FOLLOWLOCATION, 1) # 參數有1、2 # 最大重定向次數,可以預防重定向陷阱 c.setopt(pycurl.MAXREDIRS, 5) # 連接超時設置 c.setopt(pycurl.CONNECTTIMEOUT, 60) # 鏈接超時 c.setopt(pycurl.TIMEOUT, 300) # 下載超時 c.setopt(pycurl.HEADER, True) c.setopt(c.HTTPHEADER, ["Content-Type: application/x-www-form-urlencoded", "X-Requested-With:XMLHttpRequest", "Cookie:__cfduid=d27e1cfd61fd81d21d02b1da9fe4a72411473259699; 227c9_lastfid=0; 227c9_lastvisit=0%091473553135%09%2Fread.php%3Ftid%3D2063828; CNZZDATA950900=cnzz_eid%3D823435929-1473550264-%26ntime%3D1473550264"]) # 模擬瀏覽器 c.setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)") c.setopt(pycurl.AUTOREFERER, 1) c.setopt(c.REFERER, url) #設置http代理 #c.setopt(pycurl.PROXY, 'http://10.237.28.11:8080') return c def search(): player = ctypes.windll.kernel32 targetType = "MNFR2CH/A"#金色iphone7 plus storeList = [{'R401': '環貿'}, {'R581': '"五角場"'}, {'R359': '南京東路'}, {'R389': '浦東'}, {'R683': '環球港'}, {'R390': '香港廣場'}] url = "https://reserve.cdn-apple.com/CN/zh_CN/reserve/iPhone/availability.json" b = BytesIO() c = link(url, b) count = 1 while True: print("第",count,"次請求") c.setopt(pycurl.URL, url) c.perform() #執行上述訪問網址的操作 jsonStr = b.getvalue().decode('utf-8') jsonList = jsonStr.split("\r\n") decodejson = json.loads(jsonList[-1]) for store in storeList: for (k, v) in store.items(): if decodejson[k][targetType] != "NONE": print(v, decodejson[k][targetType]) print("https://reserve-cn.apple.com/CN/zh_CN/reserve/iPhone?partNumber="+targetType+"&channel=1&rv=&path=&sourceID=&iPP=false&appleCare=&iUID=&iuToken=&carrier=&store="+k) player.Beep(1000, 1000) time.sleep(5) count += 1 b.close() c.close() print("完成") if __name__ == "__main__": search()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。