Python 如何使用re获取HTML标记值

Python 如何使用re获取HTML标记值,python,web-scraping,python-requests,Python,Web Scraping,Python Requests,我正在使用python请求库提取网站中包含的HTML代码。然后我需要从这些HTML代码中获取一些信息。但不知怎的,我没有得到这些数据。如何获取这些数据 HTML Regex通常与HTML一起使用。使用BeautifulSoup使用HTML解析器读入,然后使用属性选择器: soup.select_one("span[data-testid='vuln-cvssv2-additional']") 例如 导入请求 从bs4导入BeautifulSoup html=“” 受害者必须自愿与攻击机制互动

我正在使用python请求库提取网站中包含的HTML代码。然后我需要从这些HTML代码中获取一些信息。但不知怎的,我没有得到这些数据。如何获取这些数据

HTML Regex通常与HTML一起使用。使用BeautifulSoup使用HTML解析器读入,然后使用属性选择器:

soup.select_one("span[data-testid='vuln-cvssv2-additional']")
例如

导入请求
从bs4导入BeautifulSoup
html=“”
受害者必须自愿与攻击机制互动

允许未经授权披露信息
允许未经授权的修改
''' soup=BeautifulSoup(html,“lxml”) item=soup。选择一个(“span[data testid='vuln-cvssv2-additional']”。文本 打印(项目)

BeautifulSoup将帮助您更好地解析和浏览html。简单且易于解析给定的html

参考:

为什么要使用正则表达式?使用html通常是个坏主意。是的,它奏效了。对HTML使用BeautifulSoup是一个更符合逻辑的选择。
import requests
import re

link = "https://nvd.nist.gov/vuln/detail/CVE-2017-10119"
f = requests.get(link)
deneme = str(f.text)

re_base_vector = r'\<span data-testid\s*\=\s*\"vuln-cvssv2- additional"\s*\>(.*?(\n))+.*?\n\<\\span\>'
find_base_vector = re.search(re_base_vector, deneme)

print(find_base_vector)

print(find_base_vector.group(0))
Victim must voluntarily interact with attack mechanism. 
Allows unauthorized disclosure of information. 
Allows unauthorized modification
soup.select_one("span[data-testid='vuln-cvssv2-additional']")
import requests
from bs4 import BeautifulSoup

html='''
<span data-testid="vuln-cvssv2-additional">
    Victim must voluntarily interact with attack mechanism
    <br/>
    Allows unauthorized disclosure of information
    <br/>
    Allows unauthorized modification
    <br/>
</span>
'''
soup = BeautifulSoup(html, "lxml")
item = soup.select_one("span[data-testid='vuln-cvssv2-additional']").text
print(item)