我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

1. 場景

最近有一位小姐姐向我抱怨,說她家寶寶最近要打預防針,受疫情影響,市區定點的社康醫院太少,導致預約號基本靠搶,根本是一號難求

每次預約都要一直守在手機旁,不停地刷新頁面去搶號,太耽誤功夫了,問我有沒有辦法幫到她?

我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

我分析了一下,功能入口是在微信服務號內部,如果使用 自動化 去搶號,效率會很低,搶號成功率會大減。

因此,我決定花 1 分鐘,用 Python 寫一段爬蟲!

2. 實現步驟

首先,我們在手機端配置手動代理,打開 Charles 或 FD,打開手機的放號界面,進行一次抓包操作

我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

分析界面發出的請求及響應數據,右鍵複製 cURL 到剪切板

我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

然後,使用下面這個網址將 cURL 轉為一段完整的 Python 請求代碼,包含:請求頭、Cookies 等

https://curl.trillworks.com/

我花1分鐘寫了一段爬蟲,幫助小姐姐解放了雙手

接著,將代碼複製到 Pycharm 中,根據第一步抓包獲取的數據結構,遍歷數據,找出有餘號、並且最近的社康醫院

<code>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/<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 分鐘,就能寫出一段爬蟲,幫助小姐姐解決搶號難的問題。


分享到:


相關文章: