如何使用BeautifulSoup提取指定Name、Purpose字段并获取纯文本值
解法实现
你可以通过前缀匹配定位目标字段,再通过字符串分割提取纯值,完全不依赖<li>的排序顺序,适配动态页面场景,完整可运行代码如下:
import requests from bs4 import BeautifulSoup page = requests.get("http://3.85.131.173:8000/random_company") soup = BeautifulSoup(page.content, "html.parser") info_list = soup.find_all("li") name = "" purpose = "" for item in info_list: # 提取<li>标签内的纯文本,去除首尾空白 content = item.get_text(strip=True) if content.startswith("Name: "): # 仅分割1次冒号+空格,避免值内存在冒号时拆分错误 name = content.split(": ", 1)[1].strip() elif content.startswith("Purpose: "): purpose = content.split(": ", 1)[1].strip() # 测试输出 print(name) print(purpose)
核心逻辑说明
- 用
startswith()方法匹配字段前缀,不管页面字段顺序怎么调整都能正确定位Name和Purpose - 调用
split(": ", 1)时指定分割次数为1,就算值内容中包含冒号也不会被错误拆分,取下标为1的元素即可得到前缀后的纯值 - 若需要存储多条数据,将
name和purpose初始化为列表,匹配成功时调用append()方法添加元素即可
内容的提问来源于stack exchange,提问作者cmpunk
相关产品推荐
相关产品推荐

