Python番外篇:爬取腾讯新闻热点内容 并发送新闻提示电子邮件
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番外篇:爬取腾讯新闻热点内容 并发送新闻提示电子邮件相关推荐
- Python爬虫 爬取腾讯视频评论内容
Python爬虫 爬取腾讯视频评论内容 腾讯视频评论内容在源码里是不可见,所以要使用抓包分析. 可安装fiddler代理服务器实现. 下面爬了腾讯视频评论内容(不包括回复),及发表评论者的id.昵称和 ...
- Python番外篇:爬取CSDN作者排行榜数据
今天,又双叒叕是番外篇,我们来爬取CSDN作者排行榜上的数据. 1. 确定数据源 首先,排行榜的网页链接是https://blog.csdn.net/rank/list/total: 打开" ...
- Python番外篇:网络爬虫组词程序
今天,双是番外篇,这次番外篇主要教大家如何用网络爬虫查询词语. 1.确定数据源 首先,我们得找一个查询的数据源,我找到了360国学网站,选择"词语大全",它的查询词语网址为: ht ...
- Python网络爬虫:爬取腾讯招聘网职位信息 并做成简单可视化图表
hello,大家好,我是wangzirui32,今天我们来学习如何爬取腾讯招聘网职位信息,并做成简单可视化图表,开始学习吧! 文章目录 1. 网页分析 2. 获取json数据 3. 转换为Excel ...
- 落枕学python—番外篇(1)
前言 上次写过了两篇啊,那么这次我先缓一缓,先写一个番外,但这不等于些废话,我还是要说一点实质性内容的,废话不多说,咱们先开始哈. 一.Python有什么好? 咱们既然学,就要知道我们为什么要学. 第 ...
- Python番外篇:Python代码生成春联 三种版本
Hello,大家好,我是wangzirui32,今天就是虎年春节了,先祝大家虎虎生威,虎年大吉!愿大家在新的一年里万事如意,心想事成! 文章目录 1. 普通版本 1.1 引入所需模块 1.2 生成春联 ...
- Python爬虫入门:爬取某个网页的小说内容
导入必要的包 import requests import re 要爬的网页 url = 'http://www.shujy.com/5200/244309/' 模拟浏览器发送http请求 respo ...
- python如何利用scrapy爬取纵横小说三级链接内容并存储到数据库
效果展示 settings.py# Scrapy settings for zongheng project # # For simplicity, this file contains only s ...
- Python番外篇:Flask+segno 实现个人名片二维码在线生成器
hello,我是wangzirui32,今天来教大家如何Flask框架和segno模块实现个人名片二维码在线生成器. 开始学习吧! 1. 项目架构 image文件夹为空,templates下存储了2个 ...
最新文章
- input 默认样式的修改
- 异常 java.lang.NumberFormatException: For input string:
- Leetcode300. Longest Increasing Subsequence最长上升子序列
- 投资学习网课笔记(part1)--基金第一课
- java学习笔记十一——对象转型
- 以下属于linux文件系统认为的文件是,信息安全技术题库:在Linux系统中,图形文件、数据文件、文档文件等都属于()。...
- asp.net excel导入 wps_4种Excel格式的转换方法,总有一种适合你!赶紧试试看
- 台大李宏毅2017机器学习国语课程(更新)
- Apache静态缓存配置
- python编程入门教学视频-Python编程入门电子书及视频教程-非常详细『强烈推荐』...
- 嵌入式linux设计报告,嵌入式Linux程设计报告.doc
- django中render_Django - render_to_response()
- DTOJ3026 geronimo
- 求不变矩matlab,求HU不变矩七个参数
- 【数据科学】迄今最全面的数据科学应用总结:16个分析学科及落地应用
- 2022-2028全球多通道光纤旋转接头(FORJ)行业调研及趋势分析报告
- 如何高效的使用mac
- 《Get the Job You Want》 by Harvey B. Mackay
- PTA团体天梯赛汇总
- 如何使用 Tibco Business Works 6 (BW6) 或容器版 (BWCE) 创建 Restful Web 服务