信息爬取新闻
一. 实验背景
如今的生活比较繁忙,而接收到的信息量巨大,会有忽略的时候,所以我选择信息爬取实验,来爬取本校数信学院的官网上关于本科生的通知,然后发送到邮箱,方便对信息进行查阅。
二. 数据来源
华南农业大学数学与信息学院、软件学院的官网
三. 原始数据
从官网上拿到的html数据,如下是官网截图
; 四. 数据描述和处理
用爬虫获取到的是html数据,需要使用BeautifulSoup对数据进行解析,转换成能够提取相应节点的数据。
数信官网html分析
五. 实验环境
编译器:pycharm2017
python版本:3.7.4
六. 程序处理步骤
- 使用requests包对网页发起请求,获取对于的html数据
- 用BeautifulSoup对html数据进行解析提取
- 使用smpt创建发送服务器
- 使用email包创建email的格式和内容
- 查看接受的邮件
实验结果:
; 七. 核心代码及解析
爬虫代码:
设置请求头的浏览器参数
headers = {
'User - Agent': 'Mozilla / 5.0(Windows NT 10.0; Win64; x64) AppleWebKit / 537.36(KHTML, like Gecko) Chrome / 89.0.4389.90 Safari / 537.36 Edg / 89.0.774.54'
}
info = requests.get(url='https://info.scau.edu.cn/3772/list.htm', headers=headers)
info.encoding = 'utf-8'
html = BeautifulSoup(info.text, 'html.parser')
print(html)
result=[]
for i in range(0,20):
title=html.select('.title')[i].text
date1=html.select('.date')[i].text
targetUrl = html.select('.desc')[i].find('a')
a = targetUrl.get('href')
prefixUrl = 'https://info.scau.edu.cn'
targetUrl = prefixUrl + a
result.append({
"title":title,
"date":date1,
"href":targetUrl
})
发送邮件代码:
smtp_server = "smtp.qq.com"
smtp_port = 465
smtp_key = "fqg8********8iajc"
smtp_sender = "139******5@qq.com"
smtp_receiver = "139******5@qq.com"
smtp = smtplib.SMTP_SSL(smtp_server, smtp_port)
smtp.login(smtp_sender, smtp_key)
message = MIMEMultipart()
message['From'] = Header("JanusV", "utf-8")
message['To'] = Header("管理员", "utf-8")
message['Subject'] = Header("Python SMTP Test", "utf-8")
msgText=""
for i in text:
msgText=msgText+\
"""
%s
%s
超链接:
目的地址
"""%(i["title"],i["date"],i["href"])
message.attach(MIMEText(msgText, "html", "utf-8"))
try:
smtp.sendmail(smtp_sender, smtp_receiver, message.as_string())
except Exception as e:
print('邮件发送失败--' + str(e))
print('邮件发送成功')
八. 实验结果分析与讨论
是实验成功爬取学院官网的新闻标题和日期、超链接,然后以邮件的形式发送到指定的邮箱,方便进行信息筛查和获取。
九. 实验心得体会
这个实验是要抓取新闻、评论之类的,后来看网上的资料,爬取的网站都不是我感兴趣的,于是想到可以爬取学院的官网的通知列表,以邮件的形式定时发送,这样子可以方便自己获取到学院的动态,不用去浏览太多的网页。
实验过程中没有遇到什么特别难的问题,只是在了解smtp服务器的时候花费了比较长的时间,因为这个发送的参数设置会有不全的时候,需要一个个地调配。感觉很神奇,原来python还可以这样子发送邮件去处理发送信息,如果设置一个定时器,可以定期获取信息,发送到指定邮箱,感觉还是有一定的实用性的。
Original: https://blog.csdn.net/weixin_46739744/article/details/121602353
Author: 木棉m
Title: 爬取华农数信院官网的新闻,并且发送到邮箱
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/699612/
转载文章受原作者版权保护。转载请注明原作者出处!