cnnvd爬取漏洞信息
生活随笔
收集整理的這篇文章主要介紹了
cnnvd爬取漏洞信息
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
這段時(shí)間cnnvd的xml文件一直不更新,沒(méi)辦法只能自己去爬取。github上一搜索發(fā)現(xiàn)有挺多的類似的項(xiàng)目。scrapy框架編寫(xiě)的腳本
https://github.com/luweiwei1111/python_spider/tree/master/scrapy/cnnvd
說(shuō)明: 1.本程序用于爬取cnnvd網(wǎng)址的數(shù)據(jù),并將數(shù)據(jù)通過(guò)sqlite3數(shù)據(jù)庫(kù)保存在cnnvd.db庫(kù)文件里面, 里面有兩張表:cve_cnnvd_cn 保存cnnvd的相關(guān)信息cnnvd_url 保存cnnvd的url路徑2.如何進(jìn)行爬取(分為兩步進(jìn)行爬取) python main_url.py 爬取cnnvd的url路徑保存起來(lái),由于有時(shí)候會(huì)由于網(wǎng)絡(luò)原因而導(dǎo)致失敗,所以需要繼續(xù)爬取。 python main.py 遍歷cnnvd_url表,并并在cve_cnnvd_cn里面查找cnnvd,如果已經(jīng)爬取的則不再爬取,否則就需要爬取,支持繼續(xù)爬取的功能。3.由于經(jīng)常會(huì)被封鎖IP,所以需要使用到IP池代理,我們使用免費(fèi)的代理(相關(guān)網(wǎng)址http://ip.zdaye.com/dayProxy/ip/133009.html),由于免費(fèi)的代理不穩(wěn)定,所以我們需要把爬取的數(shù)據(jù)緩存起來(lái)。 防止被禁的策略: (1)設(shè)置download_delay (2)禁止cookies(COOKIES_ENABLES=False) (3)使用user agent池 (4)使用IP池 (5)分布式爬取(TODO)這個(gè)可以使用但是,提供的代理網(wǎng)站已經(jīng)被關(guān)閉了。
這就很尷尬了。不過(guò)docker上找到了一個(gè)代理的服務(wù)
https://github.com/jhao104/proxy_pool
下載程序后
執(zhí)行以下命令安裝:
docker build -t proxy_pool . pip install docker-compose docker-compose -f Docker/docker-compose.yml up -d安裝完成后訪問(wèn)5010就能獲取到代理的api接口。
接下來(lái)把cnnvd爬蟲(chóng)的代理?yè)Q成這個(gè)api獲取的代理就可以了。
總結(jié)
以上是生活随笔為你收集整理的cnnvd爬取漏洞信息的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 对Tabular方法的总结
- 下一篇: 第五季1:AP模式USB-WIFI网卡移