首页 > 解决方案 > 无法抓取 json() 类型的评论

问题描述

我正在从网站上抓取评分和评论:“https://www.bol.com/nl/p/Topdekmatras-80x200-koudschuim-comfort-plus-tijk-5-cm-hoog/9200000116759797/”

我有 2 个包含 json() 类型的链接: https ://www.bol.com/nl/ajax/dataLayerEndpoint.html? product_id=9200000116759797 ==> 以获得评级 https://www.bol.com/nl/ rnwy/productPage/reviews?productId=9200000116759797&offset=0&limit=30&loadMore=true ==> 获取评论数。

import pandas as pd
import requests
from bs4 import BeautifulSoup

product_link = "https://www.bol.com/nl/p/Topdekmatras-80x200-koudschuim-comfort-plus-tijk-5-cm-hoog/9200000116759797/"
rating_link = "https://www.bol.com/nl/ajax/dataLayerEndpoint.html?product_id=" + str(product_link[-17:].replace("/",""))
review_link = "https://www.bol.com/nl/rnwy/productPage/reviews?productId=%s&offset=0&limit=30&loadMore=true" %(str(product_link[-17:].replace("/","")))
review_soup = BeautifulSoup(requests.get(product_link).text, "lxml")
reviewtitle= [i.get_text() for i in review_soup.find_all("strong", class_="review__title")]
product_attributes = requests.get(rating_link).json()

但是,它抛出了最后一行代码的错误:

raise JSONDecodeError("Expecting value", s, err.value) from None

JSONDecodeError: Expecting value

为什么我无法获取 JSON 数据?

标签: pythonpython-requestsweb-crawler

解决方案


推荐阅读