宝塔面板定时执行python脚本

宝塔面板执行python脚本

  • 前言
  • 一、python脚本
  • 二、使用步骤
    • 1.位置
    • 2.安装虚拟环境
    • 3.设置定时任务
  • 总结

前言

记录一下开发过程中编写的一个python脚本部署在宝塔面板上配置定时执行的过程

一、python脚本

该脚本是用来专门爬取网站的一些数据的

# -*- coding: UTF-8 -*-
import requests
import json
import pymysql
import datetime

def getHTMLText(url):
    try:
        r = requests.get( url, timeout=30 )
        r.encoding = 'utf-8'    #字符编码格式改成 utf-8
        return r.text
    except:
    #异常处理
        return "requests error !"

url = "http://dc.cncotton.com/dc/data/viewCnIndex.action"

text = getHTMLText(url)        #获取html文本内容

text=text[5:-1] 
text = json.loads(text)
text=text[0]

curr_time = datetime.datetime.now()
date=str(curr_time.year)+'-'+text.get('zsrq')
price=text.get('zsz')

conn=pymysql.connect(
    host="127.0.0.1",
    port=3306,#端口号
    user="root",#数据库用户
    password="root",#数据库密码
    database="test"#要连接的数据库名称
)
cursor=conn.cursor()

table_name="co_cotton_price_spider" #插入的表
sql_query="select * from "+table_name+" where date = '"+date+"'"
cursor.execute(sql_query)
exist=cursor.fetchone()

if exist is None:
        sql_insert="insert into "+table_name+"(date,price) values(%s,%s)"
        cursor.executemany(sql_insert, [(date,price)])#content的内容是content=(movie,star,time),content的数据要与sql语句中的占位符数量相等
        conn.commit()#提交请求,不然不会插入数据
        cursor.close()
        conn.close()
        print("successful!")
else:
        print ("error,data already exist!")

二、使用步骤

1.位置

以博主举例,博主将脚本放在了www/wwwroot/python目录下,当然这个可以根据你自己的需求来安放

宝塔面板定时执行python脚本_第1张图片

2.安装虚拟环境

这一步如果对于使用python2的小伙伴来说是可以跳过的,因为宝塔面板内嵌了python2的环境,而博主使用的脚本是用python3编写的,因此需要配置,首先在软件商店里面安装python项目管理器,然后点击添加项目,如下图所示。
宝塔面板定时执行python脚本_第2张图片
博主使用的是原生的python脚本,所以选择的框架就是python,启动方式也是以python脚本的方式启动,当然最重要的是配置的版本要对应上python脚本的版本。

3.设置定时任务

宝塔面板定时执行python脚本_第3张图片

选项 内容
任务类型 选择默认shell脚本即可
任务名称 自定义即可
执行周期 根据需求编写

关键的地方就是执行的脚本内容,如果使用python2,可以直接用以下命令执行

python /www/wwwroot/python/spider_cotton.py

如果是python3,就是用上面的第二个方式配置好虚拟环境后,使用以下命令执行

cd /www/wwwroot/python
source spider_venv/bin/activate
python spider_cotton.py


总结

上述内容如果存在问题,欢迎大家批评指正!!!

你可能感兴趣的:(python,环境,python,开发语言)