Я довольно новичок в 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
Traceback (самый последний вызов последнего): Файл "C: \ python27 \ Lib \ сайт-пакеты \ скручены \ Интернет \ base.py", линия 1201, в MainLoop 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 (результат) Файл" 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, в parse jsonresponse = json.loads (response.body_as_unicode()) Файл «C: \ Python27 \ lib \ json__init __. py», строка 338 , в нагрузках return _default_decoder.decode (ы) Файл «C: \ Python27 \ lib \ json \ decoder.py», строка 365, в декоде obj, end = self.raw_decode (s, idx = _w (s, 0) .end()) Файл «C: \ Python27 \ lib \ json \ decoder.py», строка 383, в raw_decode повышает значение ValueError («Нет объекта JSON может быть декодирован») excepti ons.ValueError: Нет объекта JSON не может быть расшифрованы
Можете ли вы показать нам полный TracBack? –
Запуск 'curl --head http: // data.sportsillustrated.cnn.com' возвращает 403. Нажатие на ссылку в браузере возвращает пустую страницу, поэтому я не думаю, что это проблема с пользовательским агентом. Возможно, вам придется настроить параметры. – verbsintransit
Я добавил трассировку. Если вы перейдете к URL-адресу, вы заметите, что JSON завернут в callbackWrapper. Может ли это вызвать у меня проблемы? – Neil