我正在尝试从“ https://www.deadstock中获取数据.ca / products / adidas-futurepacer-grey-one “
我希望能够读取如下所示的变体数据:
我认为我的定位不正确。我希望代码能够打印所有的“ id”:数字。到目前为止,这是我的代码,对于bs4来说仍然是新手,但是可以提供任何帮助。谢谢
将bs4导入为bs
导入urllib.request
导入lxml
链接= urllib.request.urlopen('https://www.deadstock.ca/products/adidas-futurepacer-grey-one').read()
汤= bs.BeautifulSoup(link,'lxml')
对于soup.find_all('script')中的变体:
打印(变体)
我在@Andrej Kesely答案的顶部尝试了类似的方法。
表示数据['variants']中的ID:
大小= id ['variants'] ['option1']
variantid = id ['variants'] ['id']
打印(尺寸)
打印(变体)
虽然它返回一个keyerror,但我只希望它显示所有ID
答案 0 :(得分:0)
对于此网站,您需要定位let shareText = "Check out this app! http://example.com"
。它包含具有所有变体的JSON:
id="ProductJson-product-template"
打印:
import bs4 as bs
import urllib.request
import json
link = urllib.request.urlopen('https://www.deadstock.ca/products/adidas-futurepacer-grey-one').read()
soup = bs.BeautifulSoup(link,'lxml')
variant = soup.find('script', id='ProductJson-product-template')
data = json.loads(variant.text)
print(json.dumps(data, indent=4, sort_keys=True))