You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用BeautifulSoup4从ResultSet标签中提取字典类型数据?

解决方法

首先要明确:Shopee的公开API返回的是JSON格式数据,BeautifulSoup是用来解析HTML/XML的工具,用它处理JSON完全是绕远路,直接用Python内置的json模块就能搞定。

正确的处理流程

  1. 用urlopen获取API响应后,直接读取响应内容并解码成字符串
  2. 用json.loads()把字符串转换成Python字典
  3. 直接通过键名提取items字段

示例代码:

from urllib.request import urlopen
import json

# 替换成你要爬取的Shopee公开API地址
api_url = "https://shopee.example.com/api/v2/search_items?keyword=xxx"

# 获取响应并解析
response = urlopen(api_url)
# 解码响应内容(大多数API用utf-8编码)
json_str = response.read().decode('utf-8')
# 转成Python字典
data_dict = json.loads(json_str)
# 提取items字段
items = data_dict.get('items', [])

# 遍历items查看数据
for item in items:
    print(item['name'], item['price'])

如果你已经用了BeautifulSoup得到字符串

如果已经通过bodydata.get_text()拿到了JSON格式的字符串,直接跳过BeautifulSoup的步骤,用json.loads()转换即可:

import json

# 假设你已经通过BeautifulSoup得到了json_str
json_str = bodydata.get_text()
data_dict = json.loads(json_str)
items = data_dict.get('items', [])

注意事项

  • 部分Shopee API会要求请求头里带User-Agent,否则会返回错误,你可以在urlopen里添加请求头:
from urllib.request import Request, urlopen

req = Request(api_url, headers={'User-Agent': 'Mozilla/5.0'})
response = urlopen(req)
  • 不要频繁请求API,避免触发Shopee的反爬机制导致IP被封禁。

内容的提问来源于stack exchange,提问作者drew

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:45:50