首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >清理re.search输出?

清理re.search输出?
EN

Stack Overflow用户
提问于 2020-01-27 12:00:34
回答 1查看 59关注 0票数 0

我一直在写一个脚本,当我输入一个漏洞名时,它将为我恢复CVSS3分数,除了一个小的恼人的细节之外,我基本上已经让它正常工作了。

代码语言:javascript
复制
π ~/Documents/Tools/Scripts ❯ python3 CVSS3-Grabber.py
Paste Vulnerability Name: PHP 7.2.x < 7.2.21 Multiple Vulnerabilities.
Base Score:  None
Vector:  <re.Match object; span=(27869, 27913), match='CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H'>
Temporal Vector:  <re.Match object; span=(27986, 28008), match='CVSS:3.0/E:U/RL:O/RC:C'>

可以看出,输出可能更整洁,我更喜欢这样的东西:

代码语言:javascript
复制
π ~/Documents/Tools/Scripts ❯ python3 CVSS3-Grabber.py
Paste Vulnerability Name: PHP 7.2.x < 7.2.21 Multiple Vulnerabilities.
Base Score:  None
Vector: CVSS:3.0/AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:H

然而,我一直在努力找出如何获得更好的输出,是否有一个简单的部分,我错过了,可以为我做到这一点?或者,首先将输出放入文件中,这样我就可以根据自己的需要对文本进行操作。

下面是我的代码,希望得到任何关于如何改进的反馈,因为我最近又回到了python和一般脚本中。

代码语言:javascript
复制
 import requests
 import re
 from bs4 import BeautifulSoup

 from googlesearch import search

def get_url():
    vuln = input("Paste Vulnerability Name: ") + "tenable"

    for url in search(vuln, tld='com',lang='en',num=1,start=0,stop=1,pause=2.0):
        return url


def get_scores(url):
    response = requests.get(url)
    html = response.text
    cvss3_temporal_v = re.search("CVSS:3.0/E:./RL:./RC:.",html)
    cvss3_v = re.search("CVSS:3.0/AV:./AC:./PR:./UI:./S:./C:./I:./A:.",html)
    cvss3_basescore = re.search("Base Score:....",html)
    print("Base Score: ",cvss3_basescore)
    print("Vector: ",cvss3_v)
    print("Temporal Vector: ",cvss3_temporal_v)



urll = get_url()
get_scores(urll)

### IMPROVEMENTS ###


# Include the base score in output
# Tidy up output
# Vulnerability list? 
# modify to accept flags, i.e python3 CVSS3-Grabber.py -v VULNAME   ???
# State whether it is a failing issue or Action point

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-27 12:10:47

不要打印匹配对象。打印匹配值。

在Python中,这个值可以通过.group() method访问。如果没有regex子组(或者您想要整个匹配,如本例中所示),则在调用它时不要指定任何参数:

代码语言:javascript
复制
print("Vector: ", cvss3_v.group())
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59930765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档