如何用Selenium和Python单独获取div内的每个元素?
提取class为message-userExtras的div内的键值对信息
针对你提供的HTML结构,可以通过遍历目标div下的<dl>标签来提取每组键值对,这里以Python的BeautifulSoup库为例实现:
实现步骤
- 解析HTML内容,定位到class为
message-userExtras的div元素 - 遍历该div下所有class为
pairs pairs--justified的<dl>标签 - 对每个dl标签,提取
<dt>的文本作为键(转为小写,保留空格),提取<dd>的文本作为值(自动去除多余标签和空白) - 将所有键值对整理为字典格式
代码示例
from bs4 import BeautifulSoup # 你的目标HTML内容 html_content = ''' <div class="message-userExtras"> <dl class="pairs pairs--justified"> <dt>Joined</dt> <dd>Feb 23, 2023</dd> </dl> <dl class="pairs pairs--justified"> <dt>Messages</dt> <dd>22</dd> </dl> <dl class="pairs pairs--justified"> <dt>Reaction score</dt> <dd> <a href="/members/297754/reactions-info" class="link">18</a> </dd> </dl> <dl class="pairs pairs--justified"> <dt>Escrow deals</dt> <dd>3</dd> </dl> <dl class="pairs pairs--justified"> <dt>Deposit</dt> <dd><a class="deposit-button" href="/members/297754/deposit" data-xf-click="overlay">0.1 <i class="fa--xf fab fa-btc deposit-fa-icon" aria-hidden="true"></i></a></dd> </dl> </div> ''' # 解析HTML soup = BeautifulSoup(html_content, 'html.parser') user_extras_div = soup.find('div', class_='message-userExtras') # 初始化结果字典 result = {} # 遍历所有dl标签 for dl in user_extras_div.find_all('dl', class_='pairs pairs--justified'): # 提取键:dt文本转小写 key = dl.find('dt').get_text(strip=True).lower() # 提取值:dd的文本,自动去除标签和空白 value = dl.find('dd').get_text(strip=True) # 按照示例格式,值存为列表 result[key] = [value] # 输出结果 print(result)
运行结果
{'joined': ['Feb 23, 2023'], 'messages': ['22'], 'reaction score': ['18'], 'escrow deals': ['3'], 'deposit': ['0.1']}
如果使用其他爬虫库(如PyQuery),核心思路一致:通过层级关系定位每组<dl>,分别提取<dt>和<dd>的内容即可。
内容的提问来源于stack exchange,提问作者BGreeneGiant
相关产品推荐
相关产品推荐

