我正在尝试使用scrapy加载json,但我得到这个错误:
raise JSONDecodeError("Extra data", s, end)
json.decoder.JSONDecodeError: Extra data: line 1 column 10718 (char 10717)
下面是我的代码:
import scrapy
import json
class CodeSpider(scrapy.Spider):
name = 'trip'
allowed_domains = ['tripadvisor.com']
start_urls = ['https://www.tripadvisor.com/Restaurant_Review-g155019-d5058155-Reviews-The_Tilted_Dog_Pub_Kitchen-Toronto_Ontario.html']
def start_requests(self):
for a in self.start_urls:
yield scrapy.Request(url = a,callback= self.parse_data)
def parse_data(self, response):
el = (response.xpath('//div[@id="taplc_footer_js_globals_0"]/following::script[1]/text()').get()).split('"responses":')[1]
data = json.loads(el)
目标是从json中获取数据。等待你亲切的回答
el
中有多个json。您可以将响应粘贴到这里,并检查为什么在解析json时得到输出。
你需要将el
分成几个部分,你可以尝试像json.loads(el.split('},"page"')[0])
这样的东西来获得第一个json对象,等等。