Python實(shí)現(xiàn)搶購(gòu)IPhone手機(jī)
要買IPhone7主要有三個(gè)途徑吧,一是官網(wǎng)下單;二是官網(wǎng)預(yù)約,直營(yíng)店取貨;三是第三方渠道。第一個(gè)渠道需要等3-4周,而且是直接快遞過來,方便是方便,缺點(diǎn)主要是對(duì)物流不放心和怕遇到瑕疵機(jī)器退換貨麻煩,優(yōu)點(diǎn)是可以信用卡12期免息付款。第三個(gè)渠道加價(jià)且不放心。預(yù)約去直營(yíng)店取機(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': '"五角場(chǎng)"'}, {'R359': '南京東路'}, {'R389': '浦東'},
{'R683': '環(huán)球港'}, {'R390': '香港廣場(chǎng)'}]
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,"次請(qǐng)求")
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()
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python淘寶搶購(gòu)腳本程序?qū)崿F(xiàn)
- Python搶購(gòu)腳本的編寫方法
- 自制Python淘寶秒殺搶購(gòu)腳本雙十一百分百中
- Python制作腳本幫女朋友搶購(gòu)清空購(gòu)物車
- python+selenium小米商城紅米K40手機(jī)自動(dòng)搶購(gòu)的示例代碼
- python搶購(gòu)軟件/插件/腳本附完整源碼
- Python 實(shí)現(xiàn)毫秒級(jí)淘寶搶購(gòu)腳本的示例代碼
- python實(shí)現(xiàn)淘寶秒殺聚劃算搶購(gòu)自動(dòng)提醒源碼
- 利用Python爬蟲實(shí)現(xiàn)搶購(gòu)某寶秒殺商品
相關(guān)文章
python中numpy.zeros(np.zeros)的使用方法
下面小編就為大家?guī)硪黄猵ython中numpy.zeros(np.zeros)的使用方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-11-11
pandas.DataFrame刪除/選取含有特定數(shù)值的行或列實(shí)例
今天小編就為大家分享一篇pandas.DataFrame刪除/選取含有特定數(shù)值的行或列實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
Django使用視圖動(dòng)態(tài)輸出CSV以及PDF的操作詳解
這篇文章主要介紹了Django 如何使用視圖動(dòng)態(tài)輸出 CSV 以及 PDF,我們需要用到 python 的 csv 和 reportLab 庫(kù),通過django視圖來定義輸出我們需要的 csv 或者 pdf 文件,需要的朋友可以參考下2024-06-06
django ManyToManyField多對(duì)多關(guān)系的實(shí)例詳解
今天小編就為大家分享一篇django ManyToManyField多對(duì)多關(guān)系的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08
Python編程快速上手——正則表達(dá)式查找功能案例分析
這篇文章主要介紹了Python正則表達(dá)式查找功能,結(jié)合具體實(shí)例形式分析了Python基于正則表達(dá)式遍歷查找指定格式文件的相關(guān)操作技巧,需要的朋友可以參考下2020-02-02
Python與Appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化測(cè)試的示例代碼
本文主要介紹了Python與Appium實(shí)現(xiàn)手機(jī)APP自動(dòng)化測(cè)試的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)隨機(jī)生成有效手機(jī)號(hào)碼及身份證功能,結(jié)合完整實(shí)例形式分析了Python基于手機(jī)號(hào)與身份證算法實(shí)現(xiàn)隨機(jī)手機(jī)號(hào)及身份證的生成功能,涉及Python日期、隨機(jī)數(shù)、文件讀取等相關(guān)操作技巧,需要的朋友可以參考下2017-06-06

