python爬取阿里云漏洞库完整版
啦啦啦,来交差了!!!
# -*- coding: utf-8 -*-
import re
import time
import requests
from random import randint
import threading
import pymysql# thread_lock = threading.BoundedSemaphore(value=10)print('正在连接到mysql服务器...')
# 给定要连接的数据库IP地址、用户名、密码、数据库名
db = pymysql.connect(host="127.0.0.1",user="root",password="root",database="ali_cve" )
print('连接成功!')
# 创建一个游标对象 cursor
cursor = db.cursor()
# 执行SQL语句
cursor.execute("SHOW TABLES")
# 获取所有记录列表
result = cursor.fetchall()
print("当前的表为:%s" %result)# 获取网页内容
def get_onepage_content(url):user_agent = ['Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.7113.93 Safari/537.36','Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0','Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4482.0 Safari/537.36 Edg/92.0.874.0']try:response = requests.get(url, headers={'User-Agent':user_agent[randint(0,1)]})if response.status_code == 200:# print(response.text)return response.textreturnexcept Exception:return# 使用正则表达式提取cve信息字段
def show_cve_content(res):match = re.compile('<tr>.*?target="_blank">(.*?)</a></td>.*?<td>(.*?)</td>.*?<button.*?>(.*?)</button>.*?nowrap="nowrap">(.*?)</td>' +'.*?<button.*?>(.*?)</button>.*?</tr>', re.S)contents = re.findall(match, res)# print(contents)# for content in contents:# yield {# 'cve_id' : content[0].strip(),# 'vul_name' : content[1],# 'vul_type' : content[2].strip(),# 'cve_date' : content[-2].strip(),# 'cvss_level': content[-1].strip()# }# content = list(content)return contents# 保持文件到ali_cve.txt文件中
def save_content_to_text(content):with open('ali_cve.txt','a+', encoding='utf-8') as f:f.write(content + '\n')# 数据插入mysql数据库
def save_to_mysql(content):global cve_id, vul_name, vul_type, cve_date, cvss_levelcve_id = content[0]vul_name = content[1]vul_type = content[2]cve_date = content[3]cvss_level = content[4]values = (cve_id, vul_name, vul_type, cve_date, cvss_level)# 插入数据语句query = """INSERT INTO cve_detail (cve_id, vul_name, vul_type, cve_date, cvss_level) values (%s, %s, %s, %s, %s)"""try:cursor.execute(query, values)print("数据插入Successful")db.commit()except:pass# # 写入完成后解锁# thread_lock.release()# 主函数
def main():for pagenum in range(1, 5474):url = 'https://avd.aliyun.com/nvd/list?page=' + str(pagenum)html = get_onepage_content(url)# print(html)for content in show_cve_content(html):# print(content)content = list(content)for i in range(0, len(content)):content[i] = content[i].strip() # 去除字符串中的空格# 上锁# thread_lock.acquire()# task = threading.Thread(target=save_to_mysql, args=(content))# task.start()# 写入数据库save_to_mysql(content)# 关闭游标,提交,关闭数据库连接# 如果没有这些关闭操作,执行后在数据库中查看不到数据cursor.close()db.commit()db.close()# for pagenum in range(1, 500):# url = 'https://avd.aliyun.com/nvd/list?page=' + str(pagenum)# print("你现在爬取的页面url为:%s"%url)## html = get_onepage_content(url)# for content in show_cve_content(html):# save_content_to_text(str(content))# time.sleep(2)#print("数据已爬取完成!!!")if __name__ == "__main__":main()
给大家看看爬取完成后的成果:
查询下一共有多少行数据
使用cve_id查询
好了,收工吃饭了,不对我刚吃完饭回来哈哈!!
python爬取阿里云漏洞库完整版相关推荐
- python爬取阿里cve漏洞库信息
水一篇爬取阿里漏洞库信息的文章,有好几周没写爬虫了,在爬取时感觉还是xpath爬取高效些,但是用的正则匹配(re库,python内置),正则虽说在写匹配样式时比较繁琐但是精确匹配还是得用它,只 爬取第 ...
- 爬取阿里云物联网平台设备的物模型数据
背景说明 按项目经理的要求,需要导出阿里云物联网平台上所有设备的物模型数据到Excel上,方便后台导入.给客户演示和备份.但是,阿里云物联网平台没有这个功能,手动一个个处理不现实,因此只能写一个爬虫爬 ...
- 阿里云Maven仓库完整版
阿里云Maven仓库完整版 <?xml version="1.0" encoding="UTF-8"?><!-- Licensed to th ...
- 用 Python 抓取阿里云盘资源
文 | 某某白米饭 来源:Python 技术「ID: pythonall」 前阵子阿里云盘大火,送了好多的容量空间.而且阿里云盘下载是不限速,这点比百度网盘好太多了.这两天看到一个第三方网站可以搜索阿 ...
- python爬取百度云资源分享吧_python爬取百度云盘资源
小测试,初学python. 1.[代码][Python]代码 import urllib import urllib.request import webbrowser import re def y ...
- 阿里云备案教程完整版(首次备案全过程)
备案前准备: 注册账号--备案前您需要拥有一个阿里云账号(支付宝账户可直接登录) 域名准备--备案前需完成域名注册及实名认证 服务器准备--购买阿里云大陆境内服务器,或获取服务器的备案服务号 备案负责 ...
- python爬取微博数据词云_用Python爬取微博数据生成词云图片
原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...
- 利用Python爬取一加云服务的所有照片(原图)
利用Python爬取一加云服务的所有照片(原图) 一.使用工具 二.cookies和headers提取 三.Python源代码下载 一.使用工具 1.Python3.8(理论上Python3都可使用) ...
- python爬取网抑云音乐评论
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.python爬取网抑云音乐评论 前言 提示:这里可以添加本文要记录的大概内容: python爬取网抑云音乐评论 提 ...
- 看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云
简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧.通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦! 很多人学习python,不知道从何学起. 很多人学习python,掌 ...
最新文章
- Android Build.VERSION.SDK_INT
- 在SecureCRT下使用sz下载和rz上传文件
- fcm算法c语言实现,基于特征权重的FCM算法研究及应用
- vue 圆形百分比进度条_快速构建一个圆形的进度条
- N个免费DevOps开源工具,没用过,至少应该了解!
- boost::r_c_shortest_paths用法的测试程序
- CTF入门--二进制
- 修改节点的属性 节点默认不允许修改
- 微信支付 签名算法 sign node实现
- 漫画 | 小白也能看懂的量子物理漫画终于来了!
- 遇见JMS[1] —— activeMQ的简单使用
- Veeam FAQ系列转载(四)
- 插入的数据不能时时查询到_漫谈 LevelDB 数据结构(一):跳表(Skip List)
- 我的CSDN博客之旅
- 微型计算机原理及应用技术ppt,微型计算机原理及应用技术.ppt
- Mac下修改文档编码方式
- Python3之标准库
- ppt更换模板以及修改图片背景色统一的问题
- crispr基因编辑_用CRISPR编程基因组
- USACO 4.2 The Perfect Stall 完美的牛栏(最大匹配)