在服务器上配置运行(每天一则段子python程序)

之前的文章里有一个用python—SMTP发信的程序,利用爬虫随机爬下段子网站的一则段子然后发送给指定收件人。

在本地计算机上运行这个程序只有及时性的功能(一直挂着也不太现实),所以现在将它放置在服务器端上。

需要将源程序稍微修改加上定时语句,如下列的每小时一则黄段子,拓展收件人列表。

#coding:UTF-8
import sys

import re
import urllib
import smtplib
import random
from email.mime.text import MIMEText

#放置服务器上设置时间
import datetime
import time

to=[‘[email protected]‘,‘[email protected]‘,‘[email protected]‘,[email protected]‘,‘[email protected]‘]
host="smtp.163.com"  #smtp服务器
user="******"    #用户名
password="*"   #密码
postfix="163.com"  #后缀
def gethtml(url):
    page=urllib.urlopen(url)
    html=page.read()
    return html

def getmessage(html):
    p=re.compile(r‘<div class="content">(.*)</div><script type="text/javascript">‘)
    #对段子内容进行正则匹配
    message=re.findall(p,html)#返回正则匹配的结果
    return message
def send_mail(to_list,sub,content):
    me="Jokes Sending!"+"<"+user+"@"+postfix+">"
    msg = MIMEText(content,_subtype=‘plain‘,_charset=‘utf-8‘)
    msg[‘Subject‘] = sub
    msg[‘From‘] = me
    msg[‘To‘] = ";".join(to_list)
    try:
        server = smtplib.SMTP()
        server.connect(host)
        server.login(user,password)
        server.sendmail(me, to_list, msg.as_string())
        server.close()
        return True
    except Exception, e:
        print str(e)
        return False  

def task():
      i=random.randint(1,500)
      i=str(i)
      web=gethtml(‘http://ishuo.cn/subject/‘+i)
      #该网站段子的链接特点

      message=getmessage(web)

      message2=‘‘.join(message)#将结果转换为字符串类型

      #message2=message2.decode(‘utf8‘)
      message2=str(message2)
      print message2
      for m in range(0,5):#对收信人列表中的每个发邮件
        if send_mail(to[m],"Laugh !guys!",message2):
            print "Suceed!"
        else:
            print "Failed!"
def timer(n):
    while True:
        task()
        time.sleep(n)

if __name__ == ‘__main__‘:
    while(1):
        timer(60*60) #延时一小时

  

接下来将它到服务器端,这里我们利用pscp.exe进行上传

pscp C:\Python27\smtp\smtp.py [email protected]*****:/home/

  两个分别是本地路径和服务器路径,接下来输入password后就传输完成。

在服务器端,用SSH连接后,我们有多种定时执行此任务的方法

如crontab指令(本程序不用,因为代码里已经自带延迟了,若使用crontab使用上篇文章(未更改前)的代码即可)

crontab -e

  编辑cron文件,设置执行间隔时间(自行设定)和执行命令,可利用crontab -l 查看是否添加成功。

sudo service cron start

 ps: service start命令需要root权限才可以执行。

ps2:若无python环境需要搭建,上述程序为python2.7版本,或缺少运行的库自行在服务器上安装配置pip。

完成后,该程序就能全天24小时按指定的时间间隔给收信人列表发段子啦。

时间: 2024-10-12 21:36:27

在服务器上配置运行(每天一则段子python程序)的相关文章

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误。    Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected est

前段时间,接手一个项目使用的是原始的jdbc作为数据库的访问,发布到服务器上在运行了一段时间之后总是会出现无法访问的情况,登录到服务器,查看tomcat日志发现总是报如下的错误. Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too man

一台服务器上配置多个Tomcat的方法

在一台服务器上配置多个Tomcat的方法: 这几天由于在研究OGSA-DQP,但是其网站上只提供了在Linux下的安装文档,而且需要在一天服务器上配置两个Tomcat,但是我一直没有弄懂怎么在Windows下实现. 如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我们把配置的详细过程写在下面,以供参考:(此例以配置两个Tomcat为例) 1. 下载

网站环境apache + php + mysql 的XAMPP,如何实现一个服务器上配置多个网站?

xampp 是一个非常方便的本地 apache + php + mysql 的调试环境,在本地安装测试 WordPress 等各种博客.论坛程序非常方便.今天我们来给大家介绍一下,如何使用 XAMPP 在本地进行安装多个网站. 一般情况下,我们只需要网站程序放到 xampp/htdoc 目录下,然后在浏览器里输入 ip 地址 http://127.0.0.1/ 或者输入域名 http://localhost/ 就可以了.但是这样我们只能使用一个程序,建立一个网站.如果我们想要测试测试不同的程序,

在Linux服务器上配置phpMyAdmin--允许空密码

使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库 首先访问phpmyadmin官网首页,网址为:http://www.phpmyadmin.net/,进入之后有download按钮,先不要下载,因为下载下来是windows的zip包,点击导航栏的Download链接,进入下载界面,这里下载最新版的4.5.5.1,选择如

在同一台服务器上配置多个Tomcat

. 在同一台服务器上配置多个Tomcat,布布扣,bubuko.com

在没有安装终端服务的Windows 2012 R2服务器上配置远程桌面的属性

在没有安装终端服务的Windows2012 R2服务器上配置远程桌面的属性. 从Windows 2012开始,如果没有在服务器上启用终端服务的计算机,要想配置远程桌面使用更安全加密的RDP连接就需要通过另一台安装了2008的服务器管理工具连接后管理.通常,对于加入域的计算机来说,这不是问题.但是如果对于未加域的计算来说,这个方法就不行了.我们需要通过一些命令来设置,可以达到同样的效果. 首先我们需要知道,用于加密的证书指纹. 把内容复制下来,并去掉空格.如下: dc1fffbc28f11b6c2

在Linux服务器上配置phpMyAdmin

使用php和mysql开发网站的话,phpmyadmin是一个非常友好的mysql管理工具,并且免费开源,国内很多虚拟主机都自带这样的管理工具,配置很简单,接下来在linux服务器上配置phpmyadmin来管理MySQL数据库 首先访问phpmyadmin官网首页,网址为:http://www.phpmyadmin.net/,进入之后有download按钮,先不要下载,因为下载下来是windows的zip包,点击导航栏的Download链接,进入下载界面,这里下载最新版的4.5.5.1,选择如

在windwo server2008服务器上配置ftp服务器、及配置phpstrom工具、实现项目同步。

在windwo server2008服务器上配置ftp服务器 参考该篇文章:http://blog.csdn.net/u010022051/article/details/52046345 在phpstrom上配置ftp

Linux服务器上配置Git

当我们需要拉取远程服务器代码到本地服务器时,我们首先要确定已经配置了正确的Git账号,可以从~/.gitconfig文件(为隐藏文件,需要使用ls -a查看),以及~/.ssh下的id_rsa.pub来确定本地服务器上是否已经配置了正确的ssh key: 若无上述提到的文件:则需要在本地服务器上完成以下1~6步配置Git: 若有上述文件,则需要校对文件的正确性,即.gitconfig中账户及邮箱是否正确(可以使用用户名登陆GitLab则视为正确),id_rsa.pub是否为账户对应的ssh ke