2017-02-05 2 views
1

Так что я хочу использовать Scrapy, чтобы получить Puerto Rico board game dataScrapy использует неправильную кодировку, добавляет дополнительные HTML-теги в JSON из веб-страницы

Данные выглядит следующим

{ "data": { 
    ... 
    "label":"<div class=\"iblock\">\u262f &ge; 75%<\/div>" 
    ... 
    } 

Однако объект response.text в Scrapy использует другую кодировку, и добавляет некоторые дополнительные HTML-теги:

<html><head></head><body> 
{"data": { 
    ... 
"label": "<div class="\&quot;iblock\&quot;">\u262f ≥ 75%&lt;\/div&gt;" 
    ... 
    } 
</div></body></html> 

Как результат, когда я пытаюсь разобрать JSON в объект питона:

responseJSON = json.loads(response.xpath("/html/body/text").extract_first()) 

Я получаю следующее сообщение об ошибке:

ValueError: end is out of bounds 

Как я могу получить Scrapy вернуть correcly закодированный ответ без каких-либо дополнительных HTML-теги?

+0

показать, как вы получаете эту строку. Может быть, проблема в другом месте. Используете ли вы селен или аналогичный инструмент? – furas

ответ

1
json.loads(response.text) 

это JSON ответ, нет необходимости использовать XPath

Испытано в Scrapy оболочке

enter image description here

+0

Я пробовал это, но он дает мне ValueError («Объект JSON не может быть декодирован»). – Jack

+0

Выяснил это. Один из моих посредников испортил это. Теперь ваш ответ работает – Jack

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