我花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 分钟,就能写出一段爬虫,帮助小姐姐解决抢号难的问题。


分享到:


相關文章: