宝塔面板定时执行python脚本

前言

记录一下开发过程中编写的一个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目录下,当然这个可以根据你自己的需求来安放

在这里插入图片描述

2.安装虚拟环境

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


总结

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

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值