gpt4 book ai didi

python - 从 xpath 中删除信息?

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:43 26 4
gpt4 key购买 nike

我使用以下代码行从网页获取 CVE id:

  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&nbsp;<i class='icon-external-link'></i></a>
<a href='https://rhn.redhat.com/errata/RHSA-2011-1402.html' target='_blank'>RHSA-2011-1402&nbsp;<i class='icon-external-link'></i></a><br />
</div>

引用文献:CVE-xxxx-xxxx RHSA-xxxx-xxxx

如何避免 RHSA 和此类条目被解析?我只想要 CVE-xxxx-xxxx 值。我用它来提交这样的表单:

          "form[CVEID]" : ",".join(self.cve_information) if self.cve_information else "GENERIC-MAP-NOMATCH",

此表单仅对 CVE 值进行验证,并且会出错,因为我的代码往往包含 RHSA 值。

最佳答案

您可以使用包含:

h = """ <div id='references'>
<b>References:</b>
<a href='https://access.redhat.com/security/cve/CVE-2011-3256' target='_blank'>CVE-2011-3256&nbsp;<i class='icon-external-link'></i></a>
<a href='https://rhn.redhat.com/errata/RHSA-2011-1402.html' target='_blank'>RHSA-2011-1402&nbsp;<i class='icon-external-link'></i></a><br />
</div>"""

from lxml import html

xml = html.fromstring(h)

urls = xml.xpath('//div[@id="references"]/a[contains(@href, "CVE")]/@href')

或者,如果您想忽略 RHSA 的 href,您可以使用不包含:

urls = xml.xpath('//div[@id="references"]/a[not(contains(@href, "RHSA"))]/@href')

两者都会给你:

 ['https://access.redhat.com/security/cve/CVE-2011-3256']

关于python - 从 xpath 中删除信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com