JSON RESPONSE FROM WEBSITE 我是python scrapy和json的新手。我试图从78751刮掉json的回应。但它显示错误。我使用的代码是
import scrapy
import json
class BlackSpider(scrapy.Spider):
name = 'black'
start_urls = ['https://appworld.blackberry.com/cas/content/2360/reviews/2.17.2?page=1&pagesize=100&sortby=newest&callback=_content_2360_reviews_2_17_2&_=1499161778751']
def parse(self, response):
data = re.findall('(\{.+\})\);', response.body_as_unicode())
a=json.loads(data[0])
item = MyItem()
item["Reviews"] = a["reviews"][4]["review"]
return item
它显示的错误是 ValueError("无JSON对象可以解码")ERROR
答案 0 :(得分:1)
你得到的答案是javascript函数,里面有一些json:
_content_2360_reviews_2_17_2(\ r \ N {"一些":" JSON"}]}); \ r \ n
要从中提取数据,您可以使用简单的正则表达式解决方案:
import re
import json
data = re.findall('(\{.+\})\);', response.body_as_unicode())
json.loads(data[0])
它转换为:选择以{}
);
之间的所有内容
编辑:结果我得到了这个:
{'platform': None,
'reviews': [{'createdDate': '2017-07-04',
'model': 'London',
'nickname': 'aravind14-92362',
'rating': 6,
'review': 'Very bad ',
'title': 'My WhatsApp no update '}],
'totalReviews': 569909,
'version': '2.17.2'}