2016-11-10 7 views
1

Я хочу, чтобы очистить данные по этой ссылкепитон скрип веб-страницы и анализировать содержимое

http://www.realclearpolitics.com/epolls/json/5491_historical.js?1453388629140&callback=return_json

Я не уверен, какой тип этой связи является то, это HTML или JSON или что-то другое. Извините за мои плохие знания в сети. Но я стараюсь использовать следующий код для очистки:

import requests 

url='http://www.realclearpolitics.com/epolls/json/5491_historical.js?1453388629140&callback=return_json' 
source=requests.get(url).text 

Тип источника - это юникод. Я также пытаюсь использовать urllib2 для очистки, например:

source2=urllib2.urlopen(url).read() 

Тип источника2 - это строка. Я не уверен, какой метод лучше. Поскольку ссылка не похожа на обычную веб-страницу, она содержит разные теги. Если я хочу очистить очищенные данные и сформировать данные dataframe (например, dataframe pandas), какой метод или процесс я должен соблюдать/

Спасибо.

+0

@depperm, спасибо, что ответит. Я обновляю ссылку. Теперь он должен работать. –

ответ

0

Возвращенный ответ - это текст, содержащий достоверные данные JSON внутри него. Вы можете проверить его самостоятельно, используя службу, например, http://jsonlint.com/. Для этого просто скопируйте код в скобках

return_json («JSON код для копирования»)

Для того, чтобы использовать эти данные нужно просто разобрать его в вашей программе. Вот пример: https://docs.python.org/2/library/json.html

+0

Вот что я написал. Содержимое внутри скобок - это данные JSON, которые вам нужны. И это действительно. Я подтвердил это с помощью службы, которую я указал. – narko

+0

И я предоставил код вместо ссылки. OP не нужно копировать этот длинный ответ вручную –

+0

Я не говорю, что вам нужно скопировать ответ JSON вручную в свой код. Я просто пытался показать, что это действительно JSON. Просто извлеките данные JSON из ответа и сделайте то, что вам нужно в вашем коде. Если вам нужна помощь в обработке json-данных с python, я предлагаю вам прочитать официальные документы: https://docs.python.org/2/library/json.html – narko

0

Ответ - текст. Он содержит JSON, просто нужно его извлечь

import json 

strip_len = len("return_json(") 

source=requests.get(url).text[strip_len:-2] 
source = json.loads(source) 
+0

Спасибо за ответ. Я пробовал этот метод раньше, но я не знаю, что я должен удалить «return_json (« Один комментарий », правильный код третьей строки должен быть« source = request.get (url) .text [strip_len: -2] », не -1. ​​ –

+0

Я не мог видеть конец ответа, но да, вы должны удалить это, поскольку оно не является частью JSON –

+0

. В принципе, этот URL-адрес возвращает то, что должно быть запрошено javascript, а не python. http://stackoverflow.com/a/7613857/2308683 –

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

  • Нет связанных вопросов^_^