寻求Curl命令对应的Python等效代码(CVE评分获取场景)
将批量获取CVE评分的Curl命令转为Python代码
需求说明
遍历指定CVE列表,请求https://www.cvedetails.com/cve/$cve页面,提取页面中cvssbox对应的CVSS评分值,对应原Bash命令逻辑。
Python实现代码
首先安装依赖库:
pip install requests beautifulsoup4
完整代码:
import requests from bs4 import BeautifulSoup # 替换为你的CVE列表 cves = ["CVE-2023-0001", "CVE-2022-1234"] for cve in cves: target_url = f"https://www.cvedetails.com/cve/{cve}" try: # 模拟浏览器请求,避免被网站拦截 resp = requests.get(target_url, headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36"}) resp.raise_for_status() # 捕获HTTP请求错误 # 解析HTML页面,替代原命令的文本切割逻辑 soup = BeautifulSoup(resp.text, "html.parser") cvss_element = soup.find("div", class_="cvssbox") if cvss_element: # 提取并清理评分文本 cvss_score = cvss_element.get_text(strip=True) print(f"{cve} 的CVSS评分:{cvss_score}") else: print(f"{cve} 未找到CVSS评分") except Exception as err: print(f"{cve} 处理失败:{str(err)}")
代码优势说明
- 相比原Bash命令的文本切割(
grep/tr/cut),用BeautifulSoup解析HTML更稳定,不会因为页面结构微调失效 - 加入错误处理,能捕获请求失败、页面解析异常等情况
- 模拟浏览器
User-Agent,降低被目标网站拦截的概率
内容的提问来源于stack exchange,提问作者sagargahalod
相关产品推荐
相关产品推荐

