因为要获取某滑雪场的实时预约空位,所以需要定时执行任务。
Mac M1使用crontab指令来实现。
在terminla输入crontab -e 之后按 i 进入编辑模式。
为了实现每分钟爬取一次,这里的命令如下。
* * * * * python3 ski.py
不过这样会报错 operation not permitted.?
经过一番查找,发现可以通过system preferences -> security & privacy -> Full Disk Access 中把cron加入进去即可。这里进入finder,按下command + shift + G 在弹出的窗口中输入'usr/sbin',在里面找到cron的exec文件,直接拉进full disk access的列表中即可。
再次运行命令, 发现返回的mail中再次报错,requests module not found。
再经过一番搜索,发现python3这里需要使用它的绝对路径。
那么怎么定位python3呢?直接在terminal输入which python3即可。
最后我得到的绝对路径是
/opt/homebrew/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/bin/python3.9
回到crontab 中重新编辑指令
* * * * * /opt/homebrew/Cellar/python@3.9/3.9.7/Frameworks/Python.framework/Versions/3.9/bin/python3.9 ski.py
最终实现每分钟自动执行py文件。
|