BeautifulSoup如何获取自闭合HTML标签中的属性值?
使用BeautifulSoup提取自闭合标签的属性值
完全没问题,不管是自闭合标签还是普通标签,BeautifulSoup都能轻松提取属性值。针对你给出的<input name="nonce" type="hidden" value="XXXXX"/>标签,给你几种实用的实现方法:
方法1:定位标签后提取value属性
from bs4 import BeautifulSoup html = '<input name="nonce" type="hidden" value="XXXXX"/>' soup = BeautifulSoup(html, 'html.parser') # 找到name为nonce的input标签 nonce_input = soup.find('input', {'name': 'nonce'}) # 提取value属性值,用get()方法能避免属性不存在时报错 if nonce_input: nonce_value = nonce_input.get('value') print(nonce_value) # 输出结果就是XXXXX
方法2:直接访问属性(需确保标签存在)
如果能确定目标标签一定存在,也可以简化成这样,但推荐用上面的get()方法更稳妥:
# 承接上面的soup对象 nonce_value = soup.find('input', {'name': 'nonce'}).get('value')
方法3:用CSS选择器定位
要是你习惯用CSS选择器写法,也可以这么来:
nonce_input = soup.select_one('input[name="nonce"]') nonce_value = nonce_input.get('value')
说白了,自闭合标签和普通标签在BeautifulSoup里的处理逻辑没区别,先找到对应的标签元素,再提取你要的属性值就行。
内容的提问来源于stack exchange,提问作者BenKen10
相关产品推荐
相关产品推荐

