【问题标题】:How to get product price from json [closed]如何从 json 获取产品价格 [关闭]
【发布时间】:2021-05-24 18:47:52
【问题描述】:

通过以下代码,我尝试从 adidas api 获取产品信息:

import requests

url = "https://www.adidas.com/api/plp/content-engine?"

params = {
    'sitePath': 'us',
    'query': 'women-athletic_sneakers'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

res = requests.get(url,params=params,headers=headers)
print(res)
data=res.json()
print(data)
for item in res.json()['raw']['itemList']['items']:
    print(item['displayName'],item['link'])
    

我仍然可以提取一些产品信息,例如displayNamelink,但我无法获得任何价格信息。

【问题讨论】:

  • 当你得到链接和显示名称时,你的问题是什么得到价格

标签: python json selenium beautifulsoup webdriver


【解决方案1】:

会发生什么?

您尝试在 json 中查找 price,但没有可用的价格信息。

如何获取价格?

您必须使用 productId 每个项目调用另一个 api:

requests.get('https://www.adidas.com/api/search/product/'+item['productId'],headers=headers)  

示例

import requests

url = "https://www.adidas.com/api/plp/content-engine?"

params = {
    'sitePath': 'us',
    'query': 'women-athletic_sneakers'
}

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36'
}

res = requests.get(url,params=params,headers=headers)
data=res.json()

for item in res.json()['raw']['itemList']['items']:
    itemRes = requests.get('https://www.adidas.com/api/search/product/'+item['productId'],headers=headers)    
    print(item['displayName'],item['link'],itemRes.json()['price'])

输出

Ultraboost OG Shoes /us/ultraboost-og-shoes/GX5370.html 200 
Super Super Sleek 72 Shoes /us/super-super-sleek-72-shoes/GX2769.html 140 
Forum Mid Shoes /us/forum-mid-shoes/GW2857.html 150 
Forum Mid Shoes /us/forum-mid-shoes/GW2858.html 150 
Ultraboost 21 Shoes /us/ultraboost-21-shoes/FY0403.html 180 
Ultraboost 21 Shoes /us/ultraboost-21-shoes/FY0432.html 180 
Ultraboost 21 Shoes /us/ultraboost-21-shoes/FZ2762.html 180 
Ultraboost 21 Shoes /us/ultraboost-21-shoes/FY0402.html 180

【讨论】:

  • 但是要得到我想要的 $ 符号怎么办
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-05
  • 1970-01-01
  • 2021-01-07
相关资源
最近更新 更多