要買IPhone7主要有三個途徑吧,一是官網(wǎng)下單;二是官網(wǎng)預(yù)約,直營店取貨;三是第三方渠道。第一個渠道需要等3-4周,而且是直接快遞過來,方便是方便,缺點主要是對物流不放心和怕遇到瑕疵機器退換貨麻煩,優(yōu)點是可以信用卡12期免息付款。第三個渠道加價且不放心。預(yù)約去直營店取機就是唯一選擇。
預(yù)約是唯一的問題,官網(wǎng)上的預(yù)約號是不定時發(fā)放,基本剛出來幾分鐘就被搶走。編程改變世界,于是我用python寫了一個查詢腳本,在蘋果放票的第一時間通過蜂鳴器通知搶預(yù)約。
python代碼如下
#!/usr/bin/env python3#encoding=utf8import pycurlimport certifiimport jsonimport timeimport ctypesfrom io import BytesIOdef link(url, b): # print pycurl.version_info() # 這個函數(shù)創(chuàng)建一個同 libcurl中的CURL處理器相對應(yīng)的Curl對象.Curl對象自動的設(shè)置CURLOPT_VERBOSE為0, CURLOPT_NOPROGRESS為1,提供一個默認的CURLOPT_USERAGENT和設(shè)置CURLOPT_ERRORBUFFER指向一個私有的錯誤緩沖區(qū). c = pycurl.Curl() # 創(chuàng)建一個同libcurl中的CURL處理器相對應(yīng)的Curl對象 c.setopt(pycurl.CAINFO, certifi.where()) c.setopt(pycurl.URL, url) # 設(shè)置要訪問的網(wǎng)址 url = "http://www.cnn.com" # 寫的回調(diào) c.setopt(pycurl.WRITEFUNCTION, b.write) c.setopt(pycurl.FOLLOWLOCATION, 1) # 參數(shù)有1、2 # 最大重定向次數(shù),可以預(yù)防重定向陷阱 c.setopt(pycurl.MAXREDIRS, 5) # 連接超時設(shè)置 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) #設(shè)置http代理 #c.setopt(pycurl.PROXY, 'http://10.237.28.11:8080') return cdef search(): player = ctypes.windll.kernel32 targetType = "MNFR2CH/A"#金色iphone7 plus storeList = [{'R401': '環(huán)貿(mào)'}, {'R581': '"五角場"'}, {'R359': '南京東路'}, {'R389': '浦東'}, {'R683': '環(huán)球港'}, {'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() #執(zhí)行上述訪問網(wǎng)址的操作 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()以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。
新聞熱點
疑難解答
圖片精選