我对Python和Scrapy相当陌生,但已经能够进行一些基本的网页抓取。但是,我遇到导入JSON数据的问题。我在代码后发布了回溯。Scrapy - 导入JSON时出错
这是我正在使用的代码。
from scrapy.spider import Spider
import json
class myspider(Spider):
name = "jsontest"
allowed_domains = ["data.sportsillustrated.cnn.com"]
start_urls = ['http://data.sportsillustrated.cnn.com/jsonp/basketball/nba/gameflash/2012/11/20/32128_playbyplay.json']
def parse(self, response):
jsonresponse = json.loads(response.body_as_unicode())
print jsonresponse
回溯(最近通话最后一个): 文件 “C:\ Python27 \ LIB \站点包\扭曲\网络\ base.py”,线1201,在主循环 self.runUntilCurrent() 文件“C:\ Python27 \ lib \ site-packages \ twisted \ internet \ base.py”,行824,在runUntilCurrent call.func(* call.args,** call.kw) 文件“C:\ Python27 \ lib \ site-packages \ twisted \ internet \ defer.py“,第382行,回调 self._startRunCallbacks(result) 文件”C:\ Python27 \ lib \ site-packages \ twisted \ internet \ defer.py“ 490行,在_startRunCallbacks self._runCallbacks() --- --- 文件“C:\ Python27 \ lib \ site-packages \ twisted \ internet \ defer.py”,第577行,在_runCallbacks中 current.result = callback(current.result,* args,* * kw) 文件“jsontest \ spiders \ jsontest.py”,第10行,解析为 jsonresponse = json.loads(response.body_as_unicode()) 文件“C:\ Python27 \ lib \ json__init __。py”,第338行,加载中 return _default_decoder.decode(s) 解码文件“C:\ Python27 \ lib \ json \ decoder.py”,第365行 obj,end = self.raw_decode(s,idx = _w(s, 0).end()) raw_decode中的文件“C:\ Python27 \ lib \ json \ decoder.py”,第383行 raise ValueError(“No JSON object could be decoding”) excepti ons.ValueError:没有JSON对象可以解码
你能告诉我们全tracback? –
运行'curl --head http:// data.sportsillustrated.cnn.com'会返回一个403.点击浏览器中的链接返回一个空白页面,所以我不认为这是一个用户代理问题。您可能需要调整您的参数。 – verbsintransit
我已添加回溯。如果你转到url,你会注意到JSON被封装在一个callbackWrapper中。这可能会导致我的问题? – Neil