Python 如何使用re获取HTML标记值
我正在使用python请求库提取网站中包含的HTML代码。然后我需要从这些HTML代码中获取一些信息。但不知怎的,我没有得到这些数据。如何获取这些数据 HTML Regex通常与HTML一起使用。使用BeautifulSoup使用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=“” 受害者必须自愿与攻击机制互动
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)