如何使用Beautiful Soup提取<tr>标签名称及指定属性值CLN8
嘿,这两个Beautiful Soup的问题我来帮你搞定!
问题1:如何提取<tr>标签的名称?
如果你说的是获取<tr>标签本身的标签名(也就是字符串tr),那很简单——当你用Beautiful Soup定位到这个标签后,直接访问它的.name属性就可以了。举个实际的代码例子:
from bs4 import BeautifulSoup # 假设你已经有了目标HTML内容,存在html变量里 soup = BeautifulSoup(html, 'html.parser') # 找到第一个<tr>标签 tr_tag = soup.find('tr') if tr_tag: # 获取标签名称 tag_name = tr_tag.name print(tag_name) # 控制台会输出: tr
如果你的意思是要提取<tr>标签里某个属性的名称(比如它带的data-table-chart-alt-symbol这类属性键),可以用.attrs属性拿到所有属性的字典,然后遍历键就行:
if tr_tag: # 获取所有属性的名称(键) attribute_names = tr_tag.attrs.keys() print(list(attribute_names)) # 输出类似: ['data-table-chart-alt-symbol', 'data-table-chart-symbol']
问题2:提取字符串“CLN8”
看你给出的HTML,“CLN8”是<tr>标签的data-table-chart-alt-symbol属性的值。我们只需要定位到这个<tr>标签,然后提取对应属性的值就行,有两种常用方法:
from bs4 import BeautifulSoup # 把你提供的HTML内容存到变量里 html = '''<tr data-table-chart-alt-symbol="CLN8" data-table-chart-symbol="@CL.1"> <td class="first text" data-field="symbol"><a href="//www.cnbc.com/quotes/?symbol=%40CL.1">OIL</a></td> <td data-field="last"></td> <td class="arrow" data-field="change_arrow"><div class="icon unch">---</div></td> <td data-field="change"></td> <td data-field="change_pct"></td> <td data-field="volume"></td> </tr>''' soup = BeautifulSoup(html, 'html.parser') tr_tag = soup.find('tr') # 方法1: 使用get()方法(推荐,属性不存在时不会报错,会返回None) cln8_value = tr_tag.get('data-table-chart-alt-symbol') # 方法2: 直接通过字典键访问(属性不存在时会抛出KeyError) # cln8_value = tr_tag['data-table-chart-alt-symbol'] print(cln8_value) # 控制台会输出: CLN8
内容的提问来源于stack exchange,提问作者Patrick Balada
相关产品推荐
相关产品推荐

