1. 場景
最近有一位小姐姐向我抱怨秒梳,說她家寶寶最近要打預(yù)防針,受疫情影響箕速,市區(qū)定點(diǎn)的社康醫(yī)院太少,導(dǎo)致預(yù)約號基本靠搶朋譬,根本是一號難求
每次預(yù)約都要一直守在手機(jī)旁盐茎,不停地刷新頁面去搶號,太耽誤功夫了徙赢,問我有沒有辦法幫到她字柠?
我分析了一下,功能入口是在微信服務(wù)號內(nèi)部狡赐,如果使用 自動化 去搶號窑业,效率會很低,搶號成功率會大減枕屉。
因此常柄,我決定花 1 分鐘,用 Python 寫一段爬蟲!
2. 實(shí)現(xiàn)步驟
首先西潘,我們在手機(jī)端配置手動代理卷玉,打開 Charles 或 FD,打開手機(jī)的放號界面喷市,進(jìn)行一次抓包操作
分析界面發(fā)出的請求及響應(yīng)數(shù)據(jù)相种,右鍵復(fù)制 cURL 到剪切板
然后,使用下面這個(gè)網(wǎng)址將 cURL 轉(zhuǎn)為一段完整的 Python 請求代碼品姓,包含:請求頭寝并、Cookies 等
接著,將代碼復(fù)制到 Pycharm 中腹备,根據(jù)第一步抓包獲取的數(shù)據(jù)結(jié)構(gòu)衬潦,遍歷數(shù)據(jù),找出有余號馏谨、并且最近的社康醫(yī)院
result = json.loads(response.text)
ym_datas = result.get('data').get('list')
foo = False
# 遍歷每一個(gè)社康
for ym_item in ym_datas:
# 地址
address = ym_item.get('outpAddress')
# 社康名字
ym_name = ym_item.get('outpName')
# 狀態(tài)别渔,是否有號
status = ym_item.get('status')
if status == '1' and ym_name in choices:
foo = True
break
else:
pass
最后,一旦發(fā)現(xiàn)有指定的社康醫(yī)院有號放出惧互,立馬發(fā)出一個(gè) 警告語音提醒
# 發(fā)出預(yù)警(Mac)
def raise_alarm(voice):
"""
發(fā)出警報(bào)(Mac)
:param voice:
:return:
"""
os.system('say %s' % voice)
?
# 發(fā)出預(yù)警(PC)
def raise_alarm(voice):
"""
發(fā)出警報(bào)(PC)
:param voice:
:return:
"""
import winsound
winsound.Beep(500, 1000)
3. 最后
通過上面幾步操作哎媚,相信不需要 1 分鐘,就能寫出一段爬蟲喊儡,幫助小姐姐解決搶號難的問題拨与。
如果你覺得文章還不錯(cuò),請大家點(diǎn)贊分享下艾猜,更多技術(shù)干貨可以關(guān)注公眾號:AirPython 來解鎖
推薦閱讀