想用python抓取别的网页内容,放到自己服务器的数据库里,服务器怎样自己运行写好的python文件?

想用python抓取别的网页内容,放到自己服务器的数据库里,服务器怎样自己运行写好的python文件?,第1张

linux类服务器的话
可以用crontab来部署自动化任务,具体请自己查查资料
python xxxpy (若未配置环境变量,需跟上python的绝对路径,如/usr/bin/python xxxfile)
windows类服务器的话:
可以用windows自带的管理工具中的任务计划程序,来部署自动化执行
将命令写入到一bat文件即可 同样是python xxxxpy(若未配置环境变量,需跟上python的绝对路径,如C:/python27/python xxxfile)
两种部署,都可以根据自己的需要设置周期,如每天什么时候,每周什么时候等等

如果你只想运行一次,那么不用循环几乎是不可能的。当然你用crontab之类的定时任务来处理也可以。我猜想你登陆之后应该是要做一些 *** 作的,那么在做任何 *** 作之前你都去判断一下登陆状态,如果session过期或者其他原因导致登陆状态失效,那么就执行重登陆。
把脚本丢在后台执行,结果输出到log,应该没什么问题的。

你可以使用 pythoncom 库,它包含ActivePython 或者可以安装pywin32 (Python for Windows extensions)

下面是一个简单 *** 作服务的例子:

import pythoncom
import win32serviceutil
import win32service
import win32event
import servicemanager
import socket
class AppServerSvc (win32serviceutilServiceFramework):
    _svc_name_ = "TestService"
    _svc_display_name_ = "Test Service"
    def __init__(self,args):
        win32serviceutilServiceFramework__init__(self,args)
        selfhWaitStop = win32eventCreateEvent(None,0,0,None)
        socketsetdefaulttimeout(60)
    def SvcStop(self):
        selfReportServiceStatus(win32serviceSERVICE_STOP_PENDING)
        win32eventSetEvent(selfhWaitStop)
    def SvcDoRun(self):
        servicemanagerLogMsg(servicemanagerEVENTLOG_INFORMATION_TYPE,
                              servicemanagerPYS_SERVICE_STARTED,
                              (self_svc_name_,''))
        selfmain()
    def main(self):
        pass
if __name__ == '__main__':
    win32serviceutilHandleCommandLine(AppServerSvc)

你的代码需要放在mian()方法里面,通常会有一些情况通过检查你在 SvcStop 方法中设置的标志,然后中断循环


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zz/13489409.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-17
下一篇 2023-08-17

发表评论

登录后才能评论

评论列表(0条)

保存