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 Header

account =' 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,note

def 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.text

weather=weather1.text

clothes=clothes1.text

return tem,weather,clothes

def 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+' '+note

message = 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'#**这里填收件人的邮箱。**

这个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+' '+note

message = 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

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

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

3、建立python环境

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

requests

BeautifulSoup4

schedule

总结

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

创作不易,谢谢支持!

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

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

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

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

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

  3. python图片直接保存到远端_Python实现获取本地及远程图片大小的方法示例

    本文实例讲述了Python实现获取本地及远程图片大小的方法.分享给大家供大家参考,具体如下: 了解过Pillow的都知道,Pillow是一个非常强大的图片处理器,这篇文章主要记录一下Pillow对图片 ...

  4. python图片识别是否p过_Python+Opencv进行识别相似图片

    标签:在网上看到python做图像识别的相关文章后,真心感觉python的功能实在太强大,因此将这些文章总结一下,建立一下自己的知识体系. 当然了,图像识别这个话题作为计算机科学的一个分支,不可能就在 ...

  5. python图片不能保存的问题处理

    原来的顺序是 plt.show() plt.savefig('d:\\outFile\\aa.jpg')#保存图片 图片不能保存 必须要 先保存再显示

  6. python图片识别是否p过_python 基于百度aip库 实现识别图片中的文字

    最终效果 1. 实现环境 win10系统 + pycharm社区版 + anaconda3 2. 实现步骤 step 1. 安装baidu-aip库 step 2. 进入百度ai官网 http://a ...

  7. python读取压缩文件的大小_python查看zip包中文件及大小的方法

    python查看zip包中文件及大小的方法 本文实例讲述了python查看zip包中文件及大小的方法.分享给大家供大家参考.具体实现方法如下: #!/usr/bin/env python import ...

  8. python判断ip能否ping通_Python实现检测服务器是否可以ping通的2种方法

    好想在2014结束前再赶出个10篇博文来,~(>_ python检测服务器是否ping通的2种方法 1.第一种比较挫,就是用ping,python调用shell,这个适用于较少的服务器数量,几百 ...

  9. python探测端口_python检测远程服务器tcp端口的方法

    本文实例讲述了python检测远程服务器tcp端口的方法.分享给大家供大家参考.具体如下: python检测远程服务器tcp端口的代码,这段代码可以用来做服务器监控实用 #!/usr/bin/env ...

最新文章

  1. java makedir用法_Java Files.makeDir方法代码示例
  2. 【科普】让人头秃的理论:什么是“奥卡姆剃刀”原理?
  3. 【已解决】The server time zone value ‘�й���׼ʱ��‘ is unrecognize
  4. python 全解坦克大战 辅助类 附完整代码【雏形】
  5. 区块如何防篡改_深入浅出:一条数据是如何完成上链的
  6. 一旦有辞职念头就干不长了吗_如何理性而高效地辞职?
  7. php strtotime,php中strtotime什么意思
  8. 使用工具包自动生成向EBS系统注册表和字段的代码
  9. 冒险岛如何修改服务器wz,冒险岛怎么WZ修改攻击力说好了加100分
  10. 第十三次博文:教你从立创EDA库导入AD库,保姆级别!
  11. 微信背后的产品观---张小龙内部8小时演讲
  12. Ant-design 源码分析之数据展示(八)Descriptions
  13. CodeForces128A - Statues 解题报告
  14. 便宜制作服务器,组建私有云:除了购买NAS服务器外试试自己手工打造吧!
  15. 拼多多分享好友砍价Java实现_拼多多砍价怎么发到qq?怎么帮好友砍价?
  16. UVA-10347 Medians 计算几何 中线定理
  17. 元音I、i 、ε、æ、a小总结
  18. 求解N的N次方的个位数
  19. 中国市场开疆辟土,TokenRank与BiYong达成战略合作
  20. 《交互设计》作业-第四周

热门文章

  1. 为什么现在的年轻人动不动就离职
  2. VTK、ITK安装及ITK读取图片、VTK显示示例(CMake)
  3. nginx部署vue项目加载资源慢优化方案
  4. Element之checkBox复选框
  5. 一文读懂PCB阻焊工艺
  6. kafka 主动消费_Kafka ack消费确认-提交和偏移量 详解
  7. 拥抱云原生,Java与Python基于gRPC通信
  8. 虚拟机+Ubuntu18.04+ORB_SLAM3+ROS环境配置(配置环境的过程以及途中出现的错误,解决方法)
  9. 软件测试面试题整理(十一)之软件测试理论(技术)——终极篇
  10. 信息学奥赛一本通网站1672:游戏通关