python自动执行脚本,python3定时执行脚本
毫无疑问,数据是数据分析的基础,而对于我这样的平民来说,获取大量数据的途径自然是通过爬虫采集。对于作者来说,写爬虫最自然的方式就是用Python写。只需几行代码,就可以完成一个实用的爬虫。多么清新。(请参考《记录一次爬取淘宝/天猫评论数据的过程》)
爬行动物将生活在哪里?接下来的问题是,这个爬虫跑哪去了?为了爬取每天更新的数据,经常需要每天运行一次爬虫,特别是在某一点。在这种情况下,挂在自己的电脑上是不现实的,因为你的电脑永远是关机的。可能有些读者会想到放在云服务器里。这是一种方法,但是需要额外的费用。受到虾神的启发,我开始想把它放进路由器里运行。一些好一点的路由器,可以用u盘连接,可以刷open-wrt系统(一个有Linux内核的路由器系统,可以像普通Linux一样安装Python)。这是一个对我来说很有吸引力的方式,但是我对Linux环境下的编译不太熟悉,尤其是路由器环境下的操作。另外路由器配置很低,一般只有16M闪存和64M内存。如果你没有耐心,想要得到它会非常困难。
我也想过买一个覆盆子馅饼来做这个。目前,树莓派2B已经有1千兆字节的内存,看起来像一个全功能的微型电脑。不贵,真的值得一玩。但是,如果你需要额外的开支,买一个覆盆子馅饼只是为了放爬虫在里面,似乎有点浪费。想了各种想法,昨天突然冒出一个想法。——除了笔记本,我们常用的智能设备是手机。为什么不放在手机上?反正我们的手机基本都是一直连着wifi的,晚上睡觉的时候手机基本都是闲置的。看来把它们收藏在手机上是最合适的方式了!
辛苦摸索有想法,赶紧做。当然,整个摸索过程是相当痛苦的。
首先,手机上的Python环境。这很简单,因为QPython是可用的。这是一个面向Android的Python环境,功能丰富,安装后即可使用。Python和PC没有太大区别,只是很多第三方库无法安装。因为爬虫要收集中文信息,所以我选择了QPython3。据说SL4A和PY4A都有,不过好像很久没更新了,配置也比较复杂,我也懒得试了。
然后写爬行动物。写爬虫的时候要注意QPython3自带的库。我以前写爬虫的时候用requests库。2.x和3.x都很常见。但是QPython3没有带这个库。在线教程一般会教我们使用库urllib2。其实这个库只有2.x才有,3.x已经集成到urllib2中了,只需要用urllib.request替换urllib2就可以了当然更重要的是,QPython3有一个带正则表达式的re库,这是写爬虫的必备!还有,QPython3自带csv库,方便我们保存结果。具体的爬虫就不给出了,请大家自行感受。
接下来,是最难的一步。如何让爬虫在手机上有规律的运行?
而且昨天今天查了很多资料,试了很多方法,失败了n次。最后,找到了一种可行的方法。
第一步是跑。安装“超级终端”(不知道有没有其他类似的软件可以实现)。这是一个Android终端模拟器,可以让我们的Android拥有类似Linux下的终端。最重要的是,它在设置里,你可以选择以root身份启动,也可以自定义终端启动命令行,在终端启动命令行输入(右图命令行选项):
/data/data/com . hip ipal . qpy 3/files/wzddh/qpython . sh/sdcard/com.hipipal.qpyplus/scripts3/582.py
加粗的部分是我们写的爬虫脚本。填写完毕后,关闭超级终端,然后重新打开超级终端。如果你发现刚才指定的爬虫脚本会在你打开终端的时候自动运行,那就成功了。
第二步是时机。可以安装“定时达人”之类的软件。这样的软件很多,随便选一个。只要它支持固定时间运行指定app,我们就会在上面设置定时任务,选择固定时间运行超级终端。
总结运行图:
到目前为止,我们已经完成了在Android上编写Python爬虫,并定期自动运行。一般来说,我们用QPython运行Python脚本,然后用timer等软件定时运行app。QPython如何指定我们脚本的执行?通过超级终端指定启动命令3354。这样,超级终端就变成了一个专门运行这个爬虫的app。(当然,这似乎对超级终端有点不公平,大材小用。但是,我没有想到更好的办法。)
转载于:https://www.spaces.ac.cn/archives/3477
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。