Press "Enter" to skip to content

Как в R получить содержание вэб-страницы, доступное только с cookies

Возникла идея посмотреть на данные опроса “Политический компас“, проводимый на сайте Центрального выборного комитета по выборам в Координационный совет российской оппозиции. В опросе могут принять участие и кандидаты в совет, и избиратели. Ответы кандидатов на политический компас становятся доступны только тогда, когда пользователь (избиратель) сам отвечает на эти же вопросы.

Технически это выглядит так, что пользователь, отвечая на вопросы компаса, получает cookie, которые при последующих обращениях к этой странице позволяют вэб-серверу решить, показывать ли пользователю ответы кандидатов, или он ещё не проходил опрос.

Чтобы узнать, какие именно куки отвечают за идентификацию на компасе, я воспользовался расширением для Firefox под названием “View Cookies” (хотя конкретно в этом случае можно было обойтись просто вкладкой “Security” в окне “Page Info”). Такими куки оказалось “печенье” под именем “uid”, содержащее длинную текстовую строку.

Переходим к R. Здесь воспользумся очередным детищем Хэдли Викхэма – расширением httr.

1
2
3
4
5
6
7
8
9
# Загружаем библиотеку
library(httr)
# Устанавливаем имя и значие куки
set_cookies(uid = 'тут_значение_куки_из_вашей_сессии')
# получаем объект класса 'response'. Функция GET подхватит
#   значения куки, установленные предыдущей командой
p <- GET('http://compass.cvk2012.org/candidates/?Compass')
# преобразуем в объект класса 'HTMLInternalDocument'
doc <- parsed_content(p, useInternalNodes = T)

Далее переменная doc готова к обработке методами R-расширения XML.

Leave a Reply

Your email address will not be published. Required fields are marked *

Защита от спама *