前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >据说这才是看热搜的正确方法?

据说这才是看热搜的正确方法?

作者头像
树枝990
发布2020-08-19 09:52:09
7970
发布2020-08-19 09:52:09
举报
文章被收录于专栏:拇指笔记拇指笔记

引言

最近比较忙,但是我又想关注关注微博知乎发生了什么事,所以写了一个定时发送邮件的程序告诉我当前天气和热搜。

相关文件

相关程序文件:后台回复 “热搜” 获取。

相关模块

代码语言:javascript
复制
bs4:解析网页
urllib:获取网页
requests:获取网页
smtplib:发送邮件
email:构造邮件
random:生成随机数
re:正则匹配文本

实现效果

功能实现

爬取信息

这个程序主要由爬虫部分和自动发邮件部分组成。爬虫部分就是简单的获取--->解析网页的过程,之所以用到了urllib库和requests库是因为这两个爬虫是我之前不同时期分别写的,没去做修改,所以两个库都有。

代码语言:javascript
复制
爬取的网站包括:
天气信息:
https://www.tianqi.com/daqing/
微博热搜:
https://s.weibo.com/top/summary?cate=realtimehot
知乎热搜:
https://www.zhihu.com/billboard

在开发者模式下查看网页,确定一下需要的信息所在位置(这里以微博热搜为例)。

可见每条热搜的全部信息都包含在<tr class>标签下,而我们需要的文本信息则在标签<td class="td-02">中,使用bs4库就可以获取得到热搜的文本信息。

其余几个网站方法类似,不赘述了。

发送邮件

为了实现自动发邮件,需要开启邮箱的STMP服务(一般在设置中打开)。

开启后要获取授权码,作为登录邮箱的密码。

然后找到你使用的邮箱的SMTP服务器的地址,常见的STMP服务器地址如下。

代码语言:javascript
复制
163邮箱:
smtp.163.com	SSL端口号:465
126邮箱:
smtp.126.com	SSL端口号:25
qq邮箱:
smtp.qq.com		SSL端口号:465

准备好需要的信息后,配置一下发件邮箱和接收邮箱。

代码语言:javascript
复制
mail_host = "smtp.163.com"  # 这里以163邮箱为例
mail_user = "用户名(邮箱@前的部分)"
mail_pass = "授权码,不是登陆密码"      
sender = '你的发送邮箱' 
message['From'] = "{}".format(sender)

receivers = ['接收邮箱1','接收邮箱2']  # 接收邮箱可以有若干个
message['To'] = ",".join(receivers)

最后配置一下发送内容和主题,send_stringtitle是调用时传入函数的。

配置好相关信息后,就可以使用smtplib库发信了。

定时执行

如果需要手动执行程序才能发送邮件的话,这个程序的意义就不大了,所以需要设置一下,实现定时执行这个程序。右击此电脑,打开管理窗口。进入如下界面,创建任务。大多数都是常规设置,按照需要设置就可以了。

但是这部分需要说明一下,框1不需要改变,框2写你的程序的位置,框3写python.exe的位置。

最后

现在主要存在的问题是电脑关机后,程序无法运行,可以通过设置在树莓派上定时运行程序来解决这个问题。关于在树莓派定时运行程序的方法,过两天我会另写一篇文章。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 拇指笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 引言
  • 相关文件
  • 相关模块
  • 实现效果
  • 功能实现
    • 爬取信息
      • 发送邮件
        • 定时执行
        • 最后
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档