crawler_exa1
编辑中...
#! /usr/bin/env python
# -*- coding:utf-8 -*-
# Author: Tdcqma '''
网页爬虫,版本 2017-09-20 21:16
''' import urllib.request
import ssl,re
import smtplib,email
import datetime url="http://www.nsfocus.net/index.php?act=sec_bug&type_id=&os=&keyword=&page=1" request = urllib.request.Request(url) # 当尝试访问https开始当站点时,设置全局取消SSL证书验证
ssl._create_default_https_context = ssl._create_unverified_context response = urllib.request.urlopen(request)
data = response.read().decode('utf-8') # 保存当前日期到today变量里
today = str(datetime.date.today()) # 使用正则表达式匹配指定安全警报内容
str = "<li><span>"+today+".*"
res = re.findall(str,data) # 发送邮件
chst = email.charset.Charset(input_charset = 'utf-8')
header = ("From: %s\nTo: %s\nSubject: %s\n\n" %
("from_mail@163.com",
"to_mail@163.com",
chst.header_encode("[爬虫安全通告-绿盟]"))) # 打开本地文件,目的为将抓取到的报警信息写入文件
f = open("secInfo-lvmeng.txt",'w',encoding='utf-8') # 生产列表保存所有安全漏洞标题 tomcat_sec = ["Apache Tomcat 漏洞告警(当前生产版本为7.0.68)\n\n"]
Cisco_sec = ["Cisco 漏洞告警(当前生产版本为1.0.35)\n\n"]
WebLogic_sec = ["WebLogic 漏洞告警(当前生产版本为10.33)\n\n"] tomcat_msg = ''' '''
WebLogic_msg = ''' '''
Cisco_msg = ''' ''' msg = ''' '''
for line in res:
tomcat_title = "Apache Tomcat 漏洞告警(当前生产版本为7.0.68)"
sub_url = "http://www.nsfocus.net"+line[37:50] # 获取安全漏洞链接
vul_title = line[52:-40] # 获取安全漏洞标题
if "Apache Tomca" in vul_title:
line = " ♠ "+today+" "+vul_title+"\n >> "+sub_url+'\n\n'
tomcat_msg += line # 逐行读取,将其保存到msg字符变量里。
tomcat_sec.append(line)
elif "WebLogic" in vul_title:
line = " ♠ " + today + " " + vul_title + "\n >> " + sub_url + '\n\n'
WebLogic_msg += line
WebLogic_sec.append(line)
elif "Cisco" in vul_title:
line = " ♠ " + today + " " + vul_title + "\n >> " + sub_url + '\n\n'
Cisco_msg += line
Cisco_sec.append(line) msg = [tomcat_sec,WebLogic_sec,Cisco_sec]
secu_msg = ''' ''' for i in range(len(msg)):
if len(msg[i]) > 1:
for j in range(len(msg[i])):
secu_msg += msg[i][j] f.writelines(secu_msg)
f.close()
msg = secu_msg # 借用163smtp服务器发送邮件,将上面读到的报警信息作为邮件正文发送。
email_con = header.encode('utf-8') + msg.encode('utf-8')
smtp = smtplib.SMTP("smtp.163.com")
smtp.login("from_mail@163.com","from_mail_pass")
smtp.sendmail('from_mail@163.com','to_mail@163.com',email_con)
print('mail send success!')
smtp.quit()
获取爬虫邮件截图:

crawler_exa1的更多相关文章
随机推荐
- maven仓库设置
Maven 中央仓库地址: 1.http://www.sonatype.org/nexus/ 私服nexus工具使用 2.http://mvnrepository.com/ 3.http://repo ...
- 简单总结下opacity、transparent以及rgba
这几个概念最开始学的时候只是有个大致印象,现在复习这部分的知识点,发现不仔细区分一下,还真有点混乱. 三者共同点是都和透明有关.先分着来说一下: 1.opacity用来设置元素的不透明级别,从 0.0 ...
- [AHOI2009]维护序列
OJ题号:洛谷2023.BZOJ1798 思路: 参见[洛谷3373][模板]线段树 2 #include<cstdio> #include<cctype> #include& ...
- nodejs 支付宝app支付
[链接]单笔转账到支付宝账户产品介绍更新时间:https://docs.open.alipay.com/309 const crypto = require('crypto') const momen ...
- mongodb副本集与分片结合
1.在三个不同服务器上,分别建立副本集: 202服务器: 192.8.123.202:27017 replSet = r202 192.8.123.202:27018 replSet = r202 1 ...
- 暗之的锁链 [COGS2434] [树上差分]
Description 无向图中有N个节点和两类边,一类边被称为主要边,而另一类被称为附加边.Dark有N – 1条主要边,并且Dark的任意两个节点之间都存在一条只由主要边构成的路径.另外,Dark ...
- 3ds max学习笔记-- 灯光调节
8,软件内默认有两盏灯,在渲染时不产生投影和高光点.手动添加灯光时,系统灯光自动关闭: 1,标准灯光:聚光灯,平行光,泛光 ,天光: a,聚光灯:目标聚光灯和自由聚光灯,当目标聚光灯的[目标]取消勾选 ...
- ajax请求json中的数据
在这里不多说,直接可以运行代码看效果: 代码: <!DOCTYPE html> <html lang="en"> <head> <meta ...
- C#自动识别文件编码
以下代码源自:http://www.cnblogs.com/stulzq/p/6116627.html /// <summary> /// 用于取得一个文本文件的编码方式(Encoding ...
- Redis开启AOF导致的删库事件
事件背景 Redis主从开启AOF,错误操作导致数据被清空. Redis主要作用:缓存.队列. 事故过程 Redis搭建了主从,持久化方式为RDB,RDB没有定时备份,且AOF都没有开启. 考虑到开启 ...