嘿,我一直在尝试从 html 页面中提取时间戳,我也尝试过查看其他方法,但似乎不适用于我的案例。我正在尝试接收许多消息的时间戳,但无法从 div 中获取数据。
<div data-sigil="message-text" data-store='{"timestamp":1425541012960,"author":100004932254581,"uuid":"mid.1425541012942:e2ebd68467f39a6954"}' data-store-id="53666">
<span>
I'm a antibacterial
</span>
<div class="messageAttachments">
</div>
</div>
我正在使用的代码是这样的。
timestamp = []
soup = BeautifulSoup(open('Messenger.html', encoding='utf-8'), 'html.parser')
div = soup.div
timestamp.append = div.attrs['data-store']
print(timestamp)
如果有帮助,我也尝试列出许多时间戳。
编辑:这是我收到的错误消息。
timestamp.append = div.attrs['data-store']
KeyError: 'data-store'
编辑2:使用下面两个答案的组合我得到了它的工作感谢每个人的帮助:)
time = soup.find_all('div', {'data-sigil':'message-text'})
#print(len(time))
for i in range(len(time)):
stamp = ast.literal_eval(time[i].attrs['data-store'])['timestamp']
timestamp.append(stamp)
#print(timestamp[i])
使用这里已经讨论过的内容,您可以使用 将字符串转换为实际的字典ast.literal_eval()
。
soup.div.attrs['data-store']
以下代码部分将从 中获取data-store
属性div
,ast.literal_eval()
将字符串转换为实际字典,然后使用键['timestamp']
获取相应的值。
import ast
from bs4 import BeautifulSoup
timestamp = []
soup = BeautifulSoup(open('Messenger.html', encoding='utf-8'),
'html.parser')
stamp = ast.literal_eval(soup.div.attrs['data-store'])['timestamp']
timestamp.append(stamp)
print(timestamp)
输出:
[1425541012960]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句