init
This commit is contained in:
30
cveorg_checker.py
Normal file
30
cveorg_checker.py
Normal file
@@ -0,0 +1,30 @@
|
||||
import requests
|
||||
import json
|
||||
import pandas as pd
|
||||
|
||||
from rprint import *
|
||||
from lxml import etree
|
||||
|
||||
search_url = "https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword={keyword}"
|
||||
detail_url = "https://cve.mitre.org/cgi-bin/cvename.cgi?name={cve}"
|
||||
|
||||
def get_cve_json(keyword: str) -> dict:
|
||||
header = ["CVE","Detail"]
|
||||
url = search_url.format(keyword=keyword)
|
||||
r =requests.get(url)
|
||||
if r.status_code == 200:
|
||||
html_tree = etree.HTML(r.text)
|
||||
table_html = html_tree.xpath('//*[@id="TableWithRules"]/table')[0]
|
||||
table_html = etree.tostring(table_html, pretty_print=True, encoding='unicode')
|
||||
df_list = pd.read_html(table_html)
|
||||
df = df_list[0]
|
||||
table_data = df.values.tolist()
|
||||
table_data.insert(0,header)
|
||||
ret = [dict(zip(header, row)) for row in table_data[1:]]
|
||||
return ret
|
||||
else:
|
||||
return {}
|
||||
|
||||
if __name__ == "__main__":
|
||||
banner()
|
||||
print(get_cve_json("AC6"))
|
||||
Reference in New Issue
Block a user