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) 

我已經嘗試過很多方法,但我失敗了:無法爲Unicode轉換爲JSON在scrapy

  • response.text
  • 編碼( 'UTF-8')
  • response_body_as_unicode

以上都無效。如何解決錯誤?

+1

dict你遇到任何錯誤?任何具體問題? 「以上都沒有奏效。」不是很有幫助。 – user312016

+0

是的,我得到了[json對象無法解碼]。 –

+0

print(response.body)的輸出是什麼? – user312016

回答

0

,你必須從response.body首先刪除不必要的信息,這是不是JSON序列化:

import re 

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

現在你有一個在jsonresp

+0

太棒了,它工作正常。非常感謝,朋友。 –

+1

您還可以獲取'https://api.gettington.com/v1/products?showMPP = false&rows = 24&q =關鍵字:south%20shore%20furniture&productfilter = null&format = json'(即刪除'&callback = searchCallback',用於JSON格式) –