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)

這個可以使用但是,提供的代理網站已經被關閉了。

這就很尷尬了。不過docker上找到了一個代理的服務

執行以下命令安裝:

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

安裝完成後訪問5010就能獲取到代理的api接口。

接下來把cnnvd爬蟲的代理換成這個api獲取的代理就可以了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章