前言
记录一下开发过程中编写的一个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
总结
上述内容如果存在问题,欢迎大家批评指正!!!