cnnvd爬取漏洞信息

这段时间cnnvd的xml文件一直不更新,没办法只能自己去爬取。github上一搜索发现有挺多的类似的项目。scrapy框架编写的脚本

https://github.com/luweiwei1111/python_spider/tree/master/scrapy/cnnvd

说明:
1.本程序用于爬取cnnvd网址的数据,并将数据通过sqlite3数据库保存在cnnvd.db库文件里面,
里面有两张表:cve_cnnvd_cn 保存cnnvd的相关信息
              cnnvd_url    保存cnnvd的url路径

2.如何进行爬取(分为两步进行爬取)
python main_url.py  爬取cnnvd的url路径保存起来,由于有时候会由于网络原因而导致失败,所以需要继续爬取。
python main.py      遍历cnnvd_url表,并并在cve_cnnvd_cn里面查找cnnvd,如果已经爬取的则不再爬取,否则就需要爬取,支持继续爬取的功能。

3.由于经常会被封锁IP,所以需要使用到IP池代理,我们使用免费的代理(相关网址http://ip.zdaye.com/dayProxy/ip/133009.html),由于免费的代理不稳定,所以我们需要把爬取的数据缓存起来。
防止被禁的策略:
(1)设置download_delay
(2)禁止cookies(COOKIES_ENABLES=False)
(3)使用user agent池
(4)使用IP池
(5)分布式爬取(TODO)

这个可以使用但是,提供的代理网站已经被关闭了。

cnnvd爬取漏洞信息_第1张图片

这就很尴尬了。不过docker上找到了一个代理的服务

https://github.com/jhao104/proxy_pool

下载程序后

执行以下命令安装:

docker build -t proxy_pool .
pip install docker-compose
docker-compose -f Docker/docker-compose.yml up -d

安装完成后访问5010就能获取到代理的api接口。

cnnvd爬取漏洞信息_第2张图片

接下来把cnnvd爬虫的代理换成这个api获取的代理就可以了。

你可能感兴趣的:(Python)