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