使用BeautifulSoup获取表格行event_timestamp属性值遇None问题求助
解决方法
你的代码返回None的核心原因是元素定位层级错误,以下是具体分析和修改方案:
核心问题分析
如果变量row本身就是目标<tr>元素,你额外调用.tr会去查找该元素下的子<tr>标签——但目标<tr>没有子<tr>,因此返回None,再取属性自然得到None。如果row是<tr>的父元素,直接.tr也可能无法精准匹配到目标元素。
针对性修改方案
情况1:row本身就是目标<tr>元素
直接跳过.tr层级,直接获取属性:
Time = row['event_timestamp']
情况2:row是<tr>的父元素
以常用的BeautifulSoup库为例,精准定位目标<tr>后再获取属性:
# 通过id精准定位单个tr元素 tr_element = row.find('tr', id='eventRowId_454169') Time = tr_element['event_timestamp'] # 若需匹配所有带event_timestamp属性的tr for tr_element in row.find_all('tr', attrs={'event_timestamp': True}): Time = tr_element['event_timestamp']
其他解析库适配(如lxml)
如果使用lxml库,可通过以下方式获取属性:
# 两种方式均可 Time = tr_element.get('event_timestamp') # 或者 Time = tr_element.attrib['event_timestamp']
内容的提问来源于stack exchange,提问作者Star Lizard
相关产品推荐
相关产品推荐

