编辑中...

#! /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的更多相关文章

随机推荐

  1. 在Adobe Html5 Extension的使用Nodejs的问题

    前情回顾 之前为一个客户开发过一个基于Adobe Premiere的Html5扩展.原本是在Adobe Premiere Pro 2015下面进行调试开发的.一切进展的非常顺利,功能也都正常.但是20 ...

  2. Unity容器中AOP应用示例程序

    转发请注明出处:https://www.cnblogs.com/zhiyong-ITNote/p/9127001.html 实在没有找到Unity容器的AOP应用程序示例的说明,在微软官网找到了教程( ...

  3. 765. 有效的三角形.md

    描述 给出三个整数 a, b, c, 如果它们可以构成三角形,返回 true. 三角形的定义 (Wikipedia) 样例 给定 a = 2, b = 3, c = 4 返回 true 给定 a = ...

  4. 1490 ACM 数学

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1490 题意: 给出n*n 的矩阵,选出不同行不同列的n个元素,并求和: 如果所有选法所产生的和相等,则输出 ...

  5. Linux系统模式之间的转换

    1.默认开机进入文本模式 如果想让开机自动进纯文本模式, 修改/etc/inittab 找到其中的 id:5:initdefault: 这行指示启动时的运行级是5,也就是图形模式 改成3就是文本模式了 ...

  6. [PA2014]Zadanie

    [PA2014]Zadanie 题目大意: 一棵\(n(n\le3\times10^5)\)个点的树,每个点上有\(a_i\)个人.树上所有人到\(i\)号点距离之和为\(b_i\).已知\(\{b_ ...

  7. 关于linux kernel slab内存管理的一点思考

    linux kernel 内存管理是个很大的话题,这里记录一点个人关于slab模块的一点思考总结. 有些书把slab介绍成高速缓存,这会让人和cache,特别是cpu cache混淆,造成误解.sla ...

  8. npm install出错,npm ERR! code EINTEGRITY npm ERR! Verification failed while extracting url-parse@1.4.3

    npm install时出现以下错误: npm ERR! code EINTEGRITY npm ERR! Verification failed while extracting url-parse ...

  9. python 文件指针及文件覆盖

    1.文件纯净模式延伸 r+t:可读.可写 w+t:可写.可读with open('b.txt','w+t',encoding='utf-8') as f: print(f.readable()) pr ...

  10. BZOJ3499 : PA2009 Quasi-template

    建立后缀树,用线段树合并求出每个节点子树内部最靠前和最靠后的后缀位置以及相邻后缀距离的最大值,同时求出每个子串能完整匹配的最长后缀的长度. 对于一个子串,如果其长度不小于相邻后缀距离的最大值,且最靠后 ...