利用Python和Selenium编程,实现定时自动检索特定网页,发现特定网页内容发生变化后,向管理员发送提醒邮件(一)

一、项目需求

        要求爬取某单位网站,登录后台查看是否有新增“网友提问”,如果有新的提问,向特定邮箱发出提醒邮件。

二、项目分析

(一)判断是否可用爬虫爬取相关内容

首先查看该网站的robots.txt文件,发现不存在该文件,由于未禁止,可用爬取取相关信息。

(二)操作流程分析

查看是否有网友提问的操作流程如下。

1、登录网站后台管理页面

2、登录成功后,点击“互动平台” 。

 3、点击互动平台后,浏览器会打开新页面(互动平台)

 4、互动平台页面上端有一个选项卡,在选项卡中可以选择“依申请公开”或是“网上问答”,但已选项显示内容是“依申请公开”还是“网上问答”,无法预见,这其由最后一次对选项卡的操作决定。互动平台页面右侧显示的是待办办件,这里显示的就是需要提醒的内容。

     在这里,我们需要查看“网上问答”部分有无新的问题,有新问题的话需要通过邮件提醒管理员。

    

 三、解决方案和所需知识

由于访问特定信息需要进行一系列操作互动,由于Selenium可以操作浏览器,不用理会涉及页面渲染一类的复杂问题,所以这里我们选择Selenium作为爬虫解决方案。

第一步需要通过Python和Selenium实现对浏览器的相关操作,获取特定网页中的内容。

第二步是通过电子邮件将提醒内容发至管理员。

需要学习Python、HTML、Selenium,以及如何通过Python利用SMTP服务器发送信息有关的知识。

下面我们分几步进行学习,首先学习如何利用Python和Selenium操作浏览器和获取页面中的信息。

  • 14
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
可以使用selenium结合email模块实现自动发送邮件的功能。以下是一个简单的示例代码: ```python from selenium import webdriver import time import smtplib from email.mime.text import MIMEText from email.header import Header # 邮件发送者和接收者的信息 sender = 'sender@example.com' receiver = 'receiver@example.com' password = 'your_password' # 构建邮件内容 message = MIMEText('这是一封自动发送邮件', 'plain', 'utf-8') message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') message['Subject'] = Header('自动发送邮件', 'utf-8') # 使用selenium完成登录操作 browser = webdriver.Chrome() browser.get('https://mail.example.com') browser.find_element_by_name('username').send_keys(sender) browser.find_element_by_name('password').send_keys(password) browser.find_element_by_id('login_button').click() time.sleep(1) # 发送邮件 browser.find_element_by_id('compose_button').click() time.sleep(1) browser.find_element_by_name('to').send_keys(receiver) browser.find_element_by_name('subjectbox').send_keys('自动发送邮件') browser.find_element_by_xpath('//div[text()="发送"]').click() time.sleep(1) # 关闭浏览器 browser.quit() # 发送邮件 smtp_server = 'smtp.example.com' smtp_port = 25 smtp_sender = smtplib.SMTP(smtp_server, smtp_port) smtp_sender.login(sender, password) smtp_sender.sendmail(sender, [receiver], message.as_string()) smtp_sender.quit() ``` 需要注意的是,以上示例代码只是一个简单的示例,实际应用中还需要根据具体情况进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牛哥带你学代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值