Python实现在远端服务器挂代码—发送定时天气预报至邮箱+每日一句(小白教程)

人生苦短,我用python。下面来讲解一个python每天定时发送天气预报和每日一句至指定邮箱的脚本挂在服务器运行的程序。
废话不多说,先来看一眼整体代码,再来一步一步讲解。

import requests
import smtplib
import schedule
import time
from bs4 import BeautifulSoup
from email.mime.text import MIMEText
from email.header import Headeraccount =' xxxxxxx@qq.com'#**这里填发件人邮箱,我用的是QQ邮箱**。
password = 'xxxxx'#**这里填发件人的授权码!不是登录密码!**
receiver ='xxxxxx @qq.com'#**这里填收件人的邮箱。**def sentence():url = "http://open.iciba.com/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']return content,notedef weather_spider():headers={'xxxx'}#伪装头url='http://www.weather.com.cn/weather1d/XXXXX.shtml'#填写天气网站所在地的网址res=requests.get(url=url,headers=headers)res.encoding='utf-8'soup=BeautifulSoup(res.text,'html.parser')tem1= soup.find(class_='tem')weather1= soup.find(class_='wea')clothes1=soup.find(class_='li3 hot').find('p')tem=tem1.textweather=weather1.textclothes=clothes1.textreturn tem,weather,clothesdef send_email(tem,weather,clothes,content,note):mailhost = 'smtp.qq.com'##把qq邮箱的服务器地址赋值到变量mailhost上,地址应为字符串格式qqmail = smtplib.SMTP_SSL(mailhost)##实例化并连接SMTP端口号。qqmail.connect(mailhost,465)#**如果放在阿里云服务器运行,只能465端口,25端口会被当做垃圾邮件。**qqmail.login(account,password)content= '亲,今日天气: '+tem+', '+weather+', '+clothes+' '+content+' '+notemessage = MIMEText(content, 'plain', 'utf-8')subject = ' 标题'#***这里写邮件的标题***message['Subject'] = Header(subject, 'utf-8')try:qqmail.sendmail(account, receiver, message.as_string())print ('邮件发送成功')except:print ('邮件发送失败')qqmail.quit()def job():print('开始一次任务')content,note=sentence()tem,weather,clothes= weather_spider()send_email(tem,weather,clothes,content,note)print('任务完成')
schedule.every().day.at("07:00").do(job)#定时七点执行任务。
while True:schedule.run_pending()time.sleep(1)#检查部署的情况,如果任务准备就绪,就开始执行任务。

一、完成代码

1、安装需要的库

这三个属于第三方库,需要另行下载

requests   Win10在cmd命令输入 pip install request
BeautifulSoup4               pip install BeautifulSoup4
schedule                     pip install schdeduile

2、填写发收件人信息

ccount =' xxxxxxx@qq.com'#**这里填发件人邮箱,我用的是QQ邮箱**。
password = 'xxxxx'#**这里填发件人的授权码**
receiver ='xxxxxx @qq.com'#**这里填收件人的邮箱。**

QQ邮箱

这个password需要我们去到这里获取:请打开https://mail.qq.com/,登录你的邮箱。然后点击位于顶部的【设置】按钮,选择【账户设置】,然后下拉到这个位置。

若为关闭,则开启POP3服务()
会收到一个授权码,即为password。

二、定义函数

——1(每日一句爬取)

def sentence():url = "http://open.iciba.com/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']return content,note

——2(天气预报爬取)

def weather_spider():
headers={'xxxx'}#伪装头
url='http://www.weather.com.cn/weather1d/101221201.shtml'#替换为自己所在地方网址
res=requests.get(url=url,headers=headers)
res.encoding='utf-8'
soup=BeautifulSoup(res.text,'html.parser')
tem1= soup.find(class_='tem')
weather1= soup.find(class_='wea')
clothes1=soup.find(class_='li3 hot').find('p')
tem=tem1.text
weather=weather1.text
clothes=clothes1.text
return tem,weather,clothes

墨迹天气

——3(发送邮件)

def send_email(tem,weather,clothes,content,note):mailhost = 'smtp.qq.com'qqmail = smtplib.SMTP_SSL(mailhost)qqmail.connect(mailhost,465)#**如果放在阿里云服务器运行,只能465端口,25端口会被当做垃圾邮件。**qqmail.login(account,password)content= '今日天气: '+tem+', '+weather+', '+clothes+' '+content+' '+notemessage = MIMEText(content, 'plain', 'utf-8')subject = ' 标题'#***这里填写邮件的标题***message['Subject'] = Header(subject, 'utf-8')try:qqmail.sendmail(account, receiver, message.as_string())print ('邮件发送成功')except:print ('邮件发送失败')qqmail.quit()

——4(执行任务)

def job():   #创建任务函数print('开始一次任务')content,note=sentence()tem,weather,clothes= weather_spider()send_email(tem,weather,clothes,content,note)print('任务完成')
schedule.every().day.at("07:00").do(job)#定时七点执行任务。
while True:schedule.run_pending()time.sleep(1)  #检查部署的情况,如果任务准备就绪,就开始执行任务。

——5小结

到这里代码就完成了

只要电脑开着,脚本就会一直运行下去。 在本地运行显示这样就是成功了。 但这样太麻烦,谁大清早起来开机运行电脑。
可以用服务器远程挂着脚本,让他自动运行。 接下来来讲如何做。

三、 服务器

1、搭建服务器

在这里推荐使用阿里云,因为相比其他服务器稳定且简便.

阿里云网

阿里云有开发者计划,专门针对学生的优惠,首次可以试用免费服务器。

我用的是轻量应用级服务器,便宜而且实用,有学生优惠,其他免费试用的,也可以用。

找到自己的服务器,设置密码并记住。

记住自己的IP 和账号名:adminstrator

2、建立ftp站点

——1

在电脑中下载FileZilla
依次 输入主机(即刚才的IP),用户名(即adminstrator),密码,端口不输入也可(默认21)

——2

在服务器端完成文档中操作

建立FTP站点文档

之后防火墙添加规则如下图

3、建立python环境

1、服务器搭建python环境文档
2、下载pip文档

之后在服务器端cmd依次安装需要的库,具体参照第开头第一步。

requests
BeautifulSoup4

schedule

总结

点击运行,之后这个程序就在服务器一直运行了!每天定时发送(我用的是vscode运行)
创作不易,谢谢支持!

Python实现在远端服务器挂代码—发送定时天气预报至邮箱+每日一句(小白教程)相关推荐

  1. python怎么把程序挂在远端服务器_Python实现在远端服务器挂代码—发送定时天气预报至邮箱+每日一句(小白教程)...

    Python实现在远端服务器挂代码-发送定时天气预报至邮箱+每日一句(小白教程) 人生苦短,我用python.下面来讲解一个python每天定时发送天气预报和每日一句至指定邮箱的脚本挂在服务器运行的程 ...

  2. python图片直接保存到远端_Python在远程服务器中的实现挂代码-发送定期天气预报到邮箱+每天一句话(小白教程),远端,定时,至,每日...

    Python实现在远端服务器挂代码-发送定时天气预报至邮箱+每日一句(小白教程) 人生苦短,我用python.下面来讲解一个python每天定时发送天气预报和每日一句至指定邮箱的脚本挂在服务器运行的程 ...

  3. Rtthread学习笔记(二十)RT-Thread使用Esp8266,连接远端服务器IP端口发送数据

    一.步骤 将RTThread移植到STM32上,添加esp8266,连接wifi,从而实现stm32与服务器通讯.其中STM32做客户端,在华为云服务器上开的网络调试助手(具有固定IP端口)做服务器, ...

  4. python 消息 推送服务器,从客户端发送字符串消息到服务器Python

    我无法运行我的代码,只要我将这些发送线添加到客户端和服务器中的recv行.我不知道什么是错的.没有他们,程序运行完美.我为了便于调试而粘贴了尽可能小的代码,因为如果没有这些代码,代码是完美的.从客户端 ...

  5. 使用java代码发送zip文件到邮箱_Azkaban安装与使用(下)

    01 PART Azkaban进阶 JavaProcess作业类型案例 JavaProcess类型可以运行一个自定义主类方法,type类型为javaprocess,可用的配置为: Xms:最小堆  9 ...

  6. python二维码生成识别代码_Python3+qrcode+zxing生成和识别二维码教程

    一.安装依赖库 pip install qrcode pillow image zxing pillow是python3中PIL的代替库,image是生成图版需要用到的库 安装image时报错&quo ...

  7. 闪电邮修改服务器设置,网易闪电邮添加outlook邮箱的方法(图文教程)

    大小:10.22 MB类别:邮件处理 更新:2018-08-04下载:4081 网易闪电邮如何正确添加outlook邮箱?网易闪电邮,高速.全面.便捷的一款传送和收取电子邮件的服务软件,网易闪电邮可以 ...

  8. 服务器上搭建java环境,安装tomcat以及MySQL数据库-小白教程

    文章目录 前言 一.安装jdk,搭建java环境 二.安装MySQL 三.安装Tomcat 总结 前言 我第一次租服务器的时候也是从网上找方法,各种教程琳琅满目,太杂乱,我在这里做一个总结.我的系统是 ...

  9. 【Python黑科技】获取每日一句美句,并定时发送邮件到指定邮箱(保姆级图文+实现代码)

    目录 实现效果 实现思路 1.获取每日一句美句 2.定时发送需要接入时间模块 3.邮件发送 实现代码 总结 欢迎关注 『Python黑科技』 系列,持续更新中 欢迎关注 『Python黑科技』 系列, ...

最新文章

  1. python3.9.0 print_关于 Python 3.9,那些你不知道的事
  2. python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))
  3. 自居电路(升压电路)
  4. mysql查询建表SQL语句
  5. 长微博android,Android 上最强大的长微博工具:BlackLight 长微博
  6. nginx1.02+php+piwik+centos5.4构建网站统计系统
  7. 谷歌怎么找ajax请求,谷歌浏览器 - GET ajax请求失败
  8. 历代Windows版本
  9. 如何查看计算机硬盘规格大小,台式机硬盘如何查看大小
  10. 移动互联网终端 淘宝客如何实现盈利
  11. 计算机算法设计与分析
  12. 博弈问题总集第三类----Staircase Nim
  13. Redis协议spec(翻译)
  14. 新建银行账户类,实现基本的属性和方法。
  15. 结合 Whisper + Stable-diffusion 的语音生成图像任务
  16. 地图定位技术揭秘(一)
  17. 转:(记录)C语言中的itoa()函数的用法解析
  18. mysql slave-skip-errors_mysql之slave_skip_errors选项
  19. Go C画图 CSP-J CSP-S 信息学奥赛 2023.01.10 测试题
  20. 使用ES Rally出错:certificate verify failed: self signed certificate in certificate chain

热门文章

  1. mac 连接上l2tp但是无法访问百度
  2. 高尔夫热潮四月优雅袭卷鹏城,深圳值得期待的运动类别盛会
  3. 考研复试(控制工程专硕)及大学本科(物联网工程)知识点回顾(一)——C语言/单片机
  4. Android实习面试经验汇总,骚年你的屏幕适配方式该升级了
  5. ABP Vnext 学习02-授权中心 重写Login 页面
  6. 【Linux】《Linux命令行与shell脚本编程大全 (第4版) 》笔记-Chapter16-脚本控制
  7. Linux下poky编译1
  8. 乔治亚理工提出基于GAN的强化学习算法用于推荐系统
  9. 天龙手游角色删除服务器还有显示,天龙八部手游怎么删除角色_角色删除方法详解_玩游戏网...
  10. matlab app设计步骤_1.1数学建模与MATLAB–MATLAB入门