Python實(shí)現(xiàn)搶購IPhone手機(jī)
要買IPhone7主要有三個(gè)途徑吧,一是官網(wǎng)下單;二是官網(wǎng)預(yù)約,直營店取貨;三是第三方渠道。第一個(gè)渠道需要等3-4周,而且是直接快遞過來,方便是方便,缺點(diǎn)主要是對(duì)物流不放心和怕遇到瑕疵機(jī)器退換貨麻煩,優(yōu)點(diǎn)是可以信用卡12期免息付款。第三個(gè)渠道加價(jià)且不放心。預(yù)約去直營店取機(jī)就是唯一選擇。
預(yù)約是唯一的問題,官網(wǎng)上的預(yù)約號(hào)是不定時(shí)發(fā)放,基本剛出來幾分鐘就被搶走。編程改變世界,于是我用python寫了一個(gè)查詢腳本,在蘋果放票的第一時(shí)間通過蜂鳴器通知搶預(yù)約。
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() # 這個(gè)函數(shù)創(chuàng)建一個(gè)同 libcurl中的CURL處理器相對(duì)應(yīng)的Curl對(duì)象.Curl對(duì)象自動(dòng)的設(shè)置CURLOPT_VERBOSE為0, CURLOPT_NOPROGRESS為1,提供一個(gè)默認(rèn)的CURLOPT_USERAGENT和設(shè)置CURLOPT_ERRORBUFFER指向一個(gè)私有的錯(cuò)誤緩沖區(qū). c = pycurl.Curl() # 創(chuàng)建一個(gè)同libcurl中的CURL處理器相對(duì)應(yīng)的Curl對(duì)象 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í)設(shè)置 c.setopt(pycurl.CONNECTTIMEOUT, 60) # 鏈接超時(shí) c.setopt(pycurl.TIMEOUT, 300) # 下載超時(shí) 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 c def 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)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
tensorflow 保存模型和取出中間權(quán)重例子
今天小編就為大家分享一篇tensorflow 保存模型和取出中間權(quán)重例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-01-01使用Python中的pytesseract模塊實(shí)現(xiàn)抓取圖片中文字
最近同事用網(wǎng)上提供掃描軟件進(jìn)行掃描識(shí)別文字,每天上線只能夠做兩次掃描,請求我研發(fā)一個(gè)小工具幫助解決識(shí)別圖片的中文字,最終我選擇使用pytesseract模塊可以解決這個(gè)需求問題,本文給大家分享實(shí)現(xiàn)代碼操作感興趣的朋友跟隨小編一起看看吧2022-11-11基于pytorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類的示例代碼
當(dāng)使用基于PyTorch的RNN實(shí)現(xiàn)字符級(jí)姓氏文本分類時(shí),我們可以使用一個(gè)非常簡單的RNN模型來處理輸入的字符序列,并將其應(yīng)用于姓氏分類任務(wù),本文給大家舉了一個(gè)基本的示例代碼,需要的朋友可以參考下2023-12-12python實(shí)現(xiàn)字符串加密 生成唯一固定長度字符串
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)字符串加密,生成唯一固定長度字符串,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03python 的numpy庫中的mean()函數(shù)用法介紹
這篇文章主要介紹了python 的numpy庫中的mean()函數(shù)用法介紹,具有很好對(duì)參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-03-03