利用python监控CNNVD上面的新出漏洞实例,可以配合邮箱推送获取最新的漏洞情报

爬取cnnvd

import requests
from bs4 import BeautifulSoup
import re
import time
import csv k = int(input("第几页结束")) for n in range(1, k + 1): # n = int(input("第几页"))
url = f"http://www.cnnvd.org.cn/web/cnnvdpatch/querylist.tag?pageno={n}" # 访问这个网址拿取源码
url_1 = "http://www.cnnvd.org.cn/"
head = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36 Edg/103.0.1264.37"
}
data = requests.get(url, headers=head)
# print(data.text)
bs = BeautifulSoup(data.text, "html.parser")
# print(bs)
positioning = bs.find("div", class_="list_list").find_all("a") # 找到特殊位置进行筛选 不能_class 只可以class_
obj = re.compile(r'meta name="title" content="(?P<name>.*?)"', re.S) # 使用re.S参数以后,正则表达式会将这个字符串作为一个整体,在整体中进行匹配
# print(positioning)
obj_2 = re.compile(r'</a><p><span>(?P<time>.*?).*?</span>(?P<time_1>.*?)</p>', re.S) # 匹配时间的正则
f = open("bugku.csv", "a+", encoding="utf-8")
csv_writer = csv.writer(f)
if n == 1:
csv_writer.writerow(["漏洞名字", "修复措施", "发布时间"])
else:
pass
for a in positioning:
# print(a.get("href")) # BeautifulSoup可以通过get直接拿到href里面的链接
wangye = url_1 + a.get("href").strip("/") # 拼接新链接
req = requests.get(wangye) # 通过get访问新链接
# print(req.text)
names = obj.findall(req.text)
times = obj_2.finditer(req.text) # 在req里面匹配时间整成元组
for b in times:
nams = names[-1] # 漏洞名字
uul = wangye # 修复网页
timetime = b.group("time") + b.group("time_1") # 时间
print(nams, uul, timetime)
csv_writer.writerow([nams, uul, timetime]) time.sleep(2) f.close()
print("休息15秒")
time.sleep(15)

Python爬取cnnvd的更多相关文章

  1. Python 爬取所有51VOA网站的Learn a words文本及mp3音频

    Python 爬取所有51VOA网站的Learn a words文本及mp3音频 #!/usr/bin/env python # -*- coding: utf-8 -*- #Python 爬取所有5 ...

  2. python爬取网站数据

    开学前接了一个任务,内容是从网上爬取特定属性的数据.正好之前学了python,练练手. 编码问题 因为涉及到中文,所以必然地涉及到了编码的问题,这一次借这个机会算是彻底搞清楚了. 问题要从文字的编码讲 ...

  3. python爬取某个网页的图片-如百度贴吧

    python爬取某个网页的图片-如百度贴吧 作者:vpoet mail:vpoet_sir@163.com 注:随意copy,不用告诉我 #coding:utf-8 import urllib imp ...

  4. Python:爬取乌云厂商列表,使用BeautifulSoup解析

    在SSS论坛看到有人写的Python爬取乌云厂商,想练一下手,就照着重新写了一遍 原帖:http://bbs.sssie.com/thread-965-1-1.html #coding:utf- im ...

  5. 使用python爬取MedSci上的期刊信息

    使用python爬取medsci上的期刊信息,通过设定条件,然后获取相应的期刊的的影响因子排名,期刊名称,英文全称和影响因子.主要过程如下: 首先,通过分析网站http://www.medsci.cn ...

  6. python爬取免费优质IP归属地查询接口

    python爬取免费优质IP归属地查询接口 具体不表,我今天要做的工作就是: 需要将数据库中大量ip查询出起归属地 刚开始感觉好简单啊,毕竟只需要从百度找个免费接口然后来个python脚本跑一晚上就o ...

  7. Python爬取豆瓣指定书籍的短评

    Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...

  8. python爬取网页的通用代码框架

    python爬取网页的通用代码框架: def getHTMLText(url):#参数code缺省值为‘utf-8’(编码方式) try: r=requests.get(url,timeout=30) ...

  9. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  10. python 爬取历史天气

    python 爬取历史天气 官网:http://lishi.tianqi.com/luozhuangqu/201802.html # encoding:utf-8 import requests fr ...

随机推荐

  1. 京东云开发者| Redis数据结构(二)-List、Hash、Set及Sorted Set的结构实现

    1 引言 之前介绍了Redis的数据存储及String类型的实现,接下来再来看下List.Hash.Set及Sorted Set的数据结构的实现. 2 List List类型通常被用作异步消息队列.文 ...

  2. 创建.NET程序Dump的几种姿势

    当一个应用程序运行的有问题时,生成一个Dump文件来调试它可能会很有用.在Windows.Linux或Azure上有许多方法可以生成转储文件. Windows平台 dotnet-dump (Windo ...

  3. 研发效能|DevOps 已死平台工程永存带来的焦虑

    最近某位大神在推特上发了一个帖子,结果引来了国内众多卖课机构.培训机构的狂欢,开始贩卖焦虑,其实「平台工程」也不是什么特别高深莫测的东西.闲得无聊,把这位大神的几个帖子薅了下来,你看过之后就会觉得没啥 ...

  4. Element Ui 安装以及配置

    npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 引入 Element 你可以引入整个 Element,或是根据需要 ...

  5. Intel GPU Gen 9 架构

    * 参考spec:the-compute-architecture-of-intel-processor-graphics-gen9-v1d0.pdf SOC 架构 Gen9 架构是早期用在igpu ...

  6. Karmada大规模测试报告发布:突破100倍集群规模

    摘要:在本文中,我们将介绍用于测试的相关指标,如何进行大规模测试,以及我们如何实现大规模的集群接入. 本文分享自华为云社区<突破100倍集群规模!Karmada大规模测试报告发布>,作者: ...

  7. 优秀的Kafka GUI客户端、可视化管理工具、监控工具

    想要查看Topic里的消息却找不到软件,想要查看或更新Broker.Topic配置,想要监控Broker服务器状态?试试下面的Kafka GUI工具--Kafka Assistant 官网地址:htt ...

  8. ftp多用户多目录配置

    测试环境:centos7 1. 装包与卸载 yum -y install vsftpd yum -y autoremove vsftpd&&rm -rf /etc/vsftpd /et ...

  9. AtCoder Regular Contest 151补题

    AtCoder Regular Contest 151 A. Equal Hamming Distances 简单题,注意下答案需要字典序最小即可 #include<bits/stdc++.h& ...

  10. C#winfrom调整任意控件宽和高

    在winform项目开发中,偶尔需要用到边框拖拽.度娘也没找到相关的轮子(可能是我不配,没推给我).只能自己造一个 上效果图(鼠标没录制上,问题不大) 上代码 private void Form1_L ...