hello,大家好,我是wangzirui32,今天来教大家如何爬取爬取腾讯新闻热点内容,并发送新闻提示电子邮件,开始学习吧!

1. HTML解析

腾讯网的首页为https://www.qq.com,打开“抗肺炎”专区,开始解析:
这个新闻的XPath是

//*[@id="tab-news-02"]/ul[1]/li[2]/a

我们对这个路径稍作修改,爬取id='tab-news-02'的div标签下所有的a标签:

//*[@id="tab-news-02"]/ul/li/a

网页分析完了,开始编写代码。

2. 编写代码

爬取代码如下:(运行前请先运行pip install jinja2安装Jinja2库)

import requests
from lxml import etree
from jinja2 import Template
import smtplib
from email.mime.text import MIMEText# 发送电子邮件的函数
def send_email(news):msg = MIMEText(news, "html", "UTF-8")msg['From']    = "你的电子邮箱@xxxx.com"msg['To']      = "你的电子邮箱@xxxx.com"msg['Subject'] = "当前腾讯热点新闻"smtp = smtplib.SMTP("SMTP服务器地址")smtp.login("你的电子邮箱@xx.com", "电子邮箱的授权码")smtp.send_message(msg)smtp.quit()# 电子邮件模板
template = """
<h1 style='text-align: center;'>当前腾讯热点新闻</h1>
<hr align="center" width="300" color="#808080" SIZE=1>
{% for news in news_list %}<h3 style='text-align: center;'><a href='{{ news[1] }}'>{{ news[0] }}</a></h3>
{% endfor %}
"""# 请求页面
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36 Edg/91.0.864.64"
}
r = requests.get("https://www.qq.com/", headers=headers)# 解析页面
html = etree.HTML(r.text)# 提取新闻内容和链接
news_xpath = '//*[@id="tab-news-02"]/ul/li/a/'
news_content = html.xpath(news_xpath+"text()")
news_link    = html.xpath(news_xpath+"@href")# 通过zip函数组合成一条条完整的新闻数据
news = zip(news_content, news_link)# 使用Jinja2生成电子邮件内容
email_content = Template(template).render(news_list=news)
# 发送电子邮件
send_email(email_content)

关于电子邮件的操作请参考这篇博文。
在以上代码中,我们定义了发送的函数send_email,爬取了数据,并通过zip函数将新闻内容和新闻链接组合在了一起,最后,我们用Jinja2生成电子邮件内容,并且进行了发送的操作。
很多同学可能不明白以下代码的作用:

{% for news in news_list %}<h3 style='text-align: center;'><a href='{{ news[1] }}'>{{ news[0] }}</a></h3>
{% endfor %}

这里的{% for news in news_list %}{% endfor %}语句是遍历程序传来的news_list列表,然后通过{{ news[1] }}{{ news[0] }}读取内容和链接,最后重复生成新闻标签,完成模板的加载。


好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!

Python番外篇:爬取腾讯新闻热点内容 并发送新闻提示电子邮件相关推荐

  1. Python爬虫 爬取腾讯视频评论内容

    Python爬虫 爬取腾讯视频评论内容 腾讯视频评论内容在源码里是不可见,所以要使用抓包分析. 可安装fiddler代理服务器实现. 下面爬了腾讯视频评论内容(不包括回复),及发表评论者的id.昵称和 ...

  2. Python番外篇:爬取CSDN作者排行榜数据

    今天,又双叒叕是番外篇,我们来爬取CSDN作者排行榜上的数据. 1. 确定数据源 首先,排行榜的网页链接是https://blog.csdn.net/rank/list/total: 打开" ...

  3. Python番外篇:网络爬虫组词程序

    今天,双是番外篇,这次番外篇主要教大家如何用网络爬虫查询词语. 1.确定数据源 首先,我们得找一个查询的数据源,我找到了360国学网站,选择"词语大全",它的查询词语网址为: ht ...

  4. Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表

    hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...

  5. 落枕学python—番外篇(1)

    前言 上次写过了两篇啊,那么这次我先缓一缓,先写一个番外,但这不等于些废话,我还是要说一点实质性内容的,废话不多说,咱们先开始哈. 一.Python有什么好? 咱们既然学,就要知道我们为什么要学. 第 ...

  6. Python番外篇:Python代码生成春联 三种版本

    Hello,大家好,我是wangzirui32,今天就是虎年春节了,先祝大家虎虎生威,虎年大吉!愿大家在新的一年里万事如意,心想事成! 文章目录 1. 普通版本 1.1 引入所需模块 1.2 生成春联 ...

  7. Python爬虫入门:爬取某个网页的小说内容

    导入必要的包 import requests import re 要爬的网页 url = 'http://www.shujy.com/5200/244309/' 模拟浏览器发送http请求 respo ...

  8. python如何利用scrapy爬取纵横小说三级链接内容并存储到数据库

    效果展示 settings.py# Scrapy settings for zongheng project # # For simplicity, this file contains only s ...

  9. Python番外篇:Flask+segno 实现个人名片二维码在线生成器

    hello,我是wangzirui32,今天来教大家如何Flask框架和segno模块实现个人名片二维码在线生成器. 开始学习吧! 1. 项目架构 image文件夹为空,templates下存储了2个 ...

最新文章

  1. input 默认样式的修改
  2. 异常 java.lang.NumberFormatException: For input string:
  3. Leetcode300. Longest Increasing Subsequence最长上升子序列
  4. 投资学习网课笔记(part1)--基金第一课
  5. java学习笔记十一——对象转型
  6. 以下属于linux文件系统认为的文件是,信息安全技术题库:在Linux系统中,图形文件、数据文件、文档文件等都属于()。...
  7. asp.net excel导入 wps_4种Excel格式的转换方法,总有一种适合你!赶紧试试看
  8. 台大李宏毅2017机器学习国语课程(更新)
  9. Apache静态缓存配置
  10. python编程入门教学视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』...
  11. 嵌入式linux设计报告,嵌入式Linux程设计报告.doc
  12. django中render_Django - render_to_response()
  13. DTOJ3026 geronimo
  14. 求不变矩matlab,求HU不变矩七个参数
  15. 【数据科学】迄今最全面的数据科学应用总结:16个分析学科及落地应用
  16. 2022-2028全球多通道光纤旋转接头(FORJ)行业调研及趋势分析报告
  17. 如何高效的使用mac
  18. 《Get the Job You Want》 by Harvey B. Mackay
  19. PTA团体天梯赛汇总
  20. 如何使用 Tibco Business Works 6 (BW6) 或容器版 (BWCE) 创建 Restful Web 服务

热门文章

  1. [新闻资讯] 使用Flex和Actionscript开发Flash游戏——重复背景绘制
  2. 活着感悟,加一堆各种想像
  3. 免费国际域名动态IP捆绑
  4. JavaSE基础知识总结(良心详解)
  5. JAX-RS @Path
  6. 趣味题系列(2):警察抓逃犯问题
  7. 【动画宣传片视频制作软件】Focusky教程 | 添加*flv或*.mp4视频背景
  8. sourceinsight教程
  9. 金融危机模拟,开启灾难模式
  10. SAP License:SAP系统中本年利润的两种结转方式