0
import scrapy 
import json 
class GettingtonDSpider(scrapy.Spider): 
    name = "gettington_d" 
    allowed_domains = ["gettington.com"] 
    start_urls = ['https://api.gettington.com/v1/products?showMPP=false&rows=24&q=Keyword:south%20shore%20furniture&productfilter=null&callback=searchCallback'] 
    def parse(self, response): 
    jsonresp = json.dumps(response.body) 
    jsonresp= json.loads(jsonresp) 

Я пробовал много методов, но мне не удалось:Невозможно преобразовать юникод в JSON в Scrapy

  • response.text
  • закодировать ('UTF-8')
  • response_body_as_unicode

Ничего из этого не было сделано. Как можно решить проблему?

+1

Вы встречая ошибку? Любая конкретная проблема? «Ничего из этого не было». на самом деле не очень полезно. – user312016

+0

Да, у меня есть [объект json не может быть расшифрован]. –

+0

Каков результат печати (response.body)? – user312016

ответ

0

вы должны удалить ненужную информацию из первых response.body, который не является JSON сериализации:

import re 

    ... 
    json_string = re.search(r'searchCallback\((.*)\)', response.body).group(1); 
    jsonresp = json.loads(json_string) 

Теперь у вас есть dict в jsonresp

+0

Удивительно, он отлично работает. Большое спасибо, Друг. –

+1

Вы также можете получить «https: //api.gettington.com/v1/products? ShowMPP = false & rows = 24 & q = Ключевое слово: south% 20shore% 20furniture & productfilter = null & format = json' (т. Е. Удаление' & callback = searchCallback' и запрос для формата JSON) –

Смежные вопросы