1. 場景
最近有一位小姐姐向我抱怨,說她家寶寶最近要打預防針,受疫情影響,市區定點的社康醫院太少,導致預約號基本靠搶,根本是一號難求
每次預約都要一直守在手機旁,不停地刷新頁面去搶號,太耽誤功夫了,問我有沒有辦法幫到她?
我分析了一下,功能入口是在微信服務號內部,如果使用 自動化 去搶號,效率會很低,搶號成功率會大減。
因此,我決定花 1 分鐘,用 Python 寫一段爬蟲!
2. 實現步驟
首先,我們在手機端配置手動代理,打開 Charles 或 FD,打開手機的放號界面,進行一次抓包操作
分析界面發出的請求及響應數據,右鍵複製 cURL 到剪切板
然後,使用下面這個網址將 cURL 轉為一段完整的 Python 請求代碼,包含:請求頭、Cookies 等
https://curl.trillworks.com/
接著,將代碼複製到 Pycharm 中,根據第一步抓包獲取的數據結構,遍歷數據,找出有餘號、並且最近的社康醫院
<code>result = json.loads(response.text) ym_datas = result.get
('data'
).get
('list'
) foo = Falsefor
ym_itemin
ym_datas: address = ym_item.get
('outpAddress'
) ym_name = ym_item.get
('outpName'
) status = ym_item.get
('status'
)if
status =='1'
and ym_namein
choices: foo = Truebreak
else
: pass/<code>
最後,一旦發現有指定的社康醫院有號放出,立馬發出一個 警告語音提醒
<code>def
raise_alarm
(voice)
:""" 發出警報(Mac) :param voice: :return: """
os.system('say %s'
% voice)def
raise_alarm
(voice)
:""" 發出警報(PC) :param voice: :return: """
import
winsound winsound.Beep(500
,1000
)/<code>
3. 最後
通過上面幾步操作,相信不需要 1 分鐘,就能寫出一段爬蟲,幫助小姐姐解決搶號難的問題。