gpt4 book ai didi

python - 从 HTML 文件顶部抓取 'dictionary' 类型对象(一堆文本,不在一个类中)

转载 作者:太空宇宙 更新时间:2023-11-04 01:07:51 25 4
gpt4 key购买 nike

考虑这个源代码:查看源代码:http://www.steepandcheap.com/gear-cache/shop-smartwool-on-sale/SWL00II-GRA

顶部有字典/JSON类型的文本,以“window.BC.product =”开头

假设我有这个页面的汤对象。我如何提取顶部的文本并将其转换为 python 字典,以便从中提取特定数据?

最佳答案

通过检查包含“window.BC.product”的文本来找到脚本

提取脚本内容后,使用正则表达式提取所需的javascript对象,然后通过json.loads()加载得到Python字典:

import json
import re
from bs4 import BeautifulSoup
import requests

pattern = re.compile(r"window\.BC\.product = (.*);", re.MULTILINE)

response = requests.get("http://www.steepandcheap.com/gear-cache/shop-smartwool-on-sale/SWL00II-GRA")
soup = BeautifulSoup(response.content)

script = soup.find("script", text=lambda x: x and "window.BC.product" in x).text
data = json.loads(re.search(pattern, script).group(1))
print data

打印:

{u'features': [{u'name': u'Material', u'description': u'[shell] 86% polyester, ... u'Zippered back pocket\r', u'Reflective details']}

关于python - 从 HTML 文件顶部抓取 'dictionary' 类型对象(一堆文本,不在一个类中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29451598/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com