如何用Python的Robobrowser、BeautifulSoup提取HTML指定文本
提取目标文本的解决方案
嘿,我来帮你搞定这个数据提取的问题!既然页面没有可用的类或ID,咱们就靠标签的属性和结构来精准定位内容。结合你给出的代码片段,这里是完整的实现方案:
步骤说明
- 首先确保你已经导入了
BeautifulSoup和对应的浏览器库(从代码里的browser.open来看,你应该用的是mechanicalsoup) - 定位到包含目标数据的
<font color="white">标签——这是我们的核心切入点 - 遍历标签内的所有
<b>元素,提取每个<b>之后的纯文本内容
完整代码示例
from bs4 import BeautifulSoup import mechanicalsoup # 初始化浏览器并打开目标页面 browser = mechanicalsoup.Browser() page = browser.open(bank_url) soup = BeautifulSoup(page.text, 'html.parser') # 通过color属性定位到存储用户数据的font标签 target_container = soup.find('font', color='white') # 提取每个字段的键值对,整理成字典 user_profile = {} for bold_tag in target_container.find_all('b'): # 处理键名:去掉末尾的冒号和多余空白 field_name = bold_tag.text.strip().rstrip(':') # 获取<b>标签之后的兄弟文本,清理空白字符 field_value = bold_tag.next_sibling.strip() user_profile[field_name] = field_value # 查看提取后的结构化数据 print(user_profile)
代码解释
- 我们用
soup.find('font', color='white')精准锁定数据容器,这个标签的color属性是当前唯一可利用的定位标识 - 遍历每个
<b>标签,把<b>内的文本(比如"Name"、"Money")作为字典的键,<b>后面紧跟的纯文本作为对应的值 - 用
strip()和rstrip(':')清理文本里的空白和多余符号,让最终数据更整洁
运行这段代码后,你会得到一个结构清晰的字典,示例输出如下:
{ 'Name': 'USERNAME [585743]', 'Money': '$MONEY', 'Location': 'CITY', 'Level': '43', 'Gold': '4706 / 5315' }
内容的提问来源于stack exchange,提问作者Alexis Drakopoulos
相关产品推荐
相关产品推荐

