1
我用下面的代碼行從網頁抓取CVE ID的:從xpath去除信息?
project.cve_information = "".join(xpath_parse(tree, '//div[@id="references"]/a/text()')).split()
但是,問題是:
<div id='references'>
<b>References:</b>
<a href='https://access.redhat.com/security/cve/CVE-2011-3256' target='_blank'>CVE-2011-3256 <i class='icon-external-link'></i></a>
<a href='https://rhn.redhat.com/errata/RHSA-2011-1402.html' target='_blank'>RHSA-2011-1402 <i class='icon-external-link'></i></a><br />
</div>
參考:CVE-XXXX-XXXX RHSA-XXXX-XXXX
如何避免RHSA和這些條目被解析?我只想要CVE-xxxx-xxxx值。我用它來提交表單是這樣的:因爲我的代碼往往包括RHSA值
"form[CVEID]" : ",".join(self.cve_information) if self.cve_information else "GENERIC-MAP-NOMATCH",
這種形式只執行對CVE值和錯誤的驗證了。
恩,我想我沒有正確解釋我的問題。我正在使用xpath表達式來解析「引用」字段。然後,我在其他地方使用「CVE-xxxx-xxxx」ID,以便它可以是https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-xxxx-xxxx。使用目前的解決方案,我得到 - 警告:無法找到有關CVE的信息CVE-2011-3256 - CVE-2011-3256 – Metahuman
的額外「CVE」您想要CVE-2011-3256嗎?如果它們總是在'/'末尾並且提取,如果它們可以在任何地方,那麼你需要一個正則表達式或者分割並且使用str.strartswith來找到你想要的子字符串 –
把xpath從'/ @ href '到'/ text()' –