以json格式刮取内容-Python

以json格式刮取内容-Python,python,json,web-scraping,beautifulsoup,Python,Json,Web Scraping,Beautifulsoup,我试图像使用Python3.5一样刮取页面。我已经用BeautifulSoup删除了它的内容。我有一个刮大小的问题。在该特定页面中,尺寸数量为9(FR 80 A、FR 80 B、FR 80 C等)。我想这些信息是json格式的。我试图使用json包,但找不到“开始”和“结束”。 我的代码如下所示: import requests import json page = requests.get('https://www.laperla.com/fr/en/cfiplm000566-bgw532.

我试图像使用Python3.5一样刮取页面。我已经用BeautifulSoup删除了它的内容。我有一个刮大小的问题。在该特定页面中,尺寸数量为9(FR 80 A、FR 80 B、FR 80 C等)。我想这些信息是json格式的。我试图使用json包,但找不到“开始”和“结束”。 我的代码如下所示:

import requests
import json

page = requests.get('https://www.laperla.com/fr/en/cfiplm000566-bgw532.html')
content = page.text    
start = content.find('spConfig') + ...
end = ...    
data = json.loads(content[start:end])
sizes = data['attributes']['179']['options']
print(len(sizes))

正确的输出应该是“9”,因为有9种尺寸。我不想使用selenium或类似的软件包。那么,哪个是正确的“开始”和“结束”?有没有比我现在所做的更好的方法来获取这些数据呢?

1。迭代所有
script
标记并搜索目标json

二,。使用
regex
抓取
start
end

三,。使用
json
模块

for i in soup.select('script'):
    if 'Product.Config' in str(i):
        data = re.search(r'(?is)(Product\.Config\()(.*?)(\))',str(i)).group(2)

json_data = json.loads(data)
print(len(json_data['attributes']['179']['options']))
9