Алгоритмическое и программное обеспечение анализа графов ближайшего окружения для выявления ботов и определения неуказанных атрибутов пользователей в онлайновых социальных сетях тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Чесноков Владислав Олегович

  • Чесноков Владислав Олегович
  • кандидат науккандидат наук
  • 2019, ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)»
  • Специальность ВАК РФ05.13.11
  • Количество страниц 202
Чесноков Владислав Олегович. Алгоритмическое и программное обеспечение анализа графов ближайшего окружения для выявления ботов и определения неуказанных атрибутов пользователей в онлайновых социальных сетях: дис. кандидат наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. ФГБОУ ВО «Московский государственный технический университет имени Н.Э. Баумана (национальный исследовательский университет)». 2019. 202 с.

Оглавление диссертации кандидат наук Чесноков Владислав Олегович

Введение

Глава 1. Особенности онлайновых социальных сетей как

программной системы

1.1. Проблемы анализа онлайновых социальных сетей

1.2. Методы обнаружения ботов в онлайновых социальных сетях

1.2.1. Поведенческий анализ

1.2.2. Анализ текстов

1.2.3. Профиль пользователя

1.2.4. Анализ связей пользователя

1.3. Проблема определения скрытых или неуказанных атрибутов

1 V-/ V-/ V-/ Л

профиля пользователя онлайновой социальной сети

1.3.1. Голосование и перенос атрибутов

1.3.2. Предпочтения пользователей

1.3.3. Машинное обучение

1.3.4. Выделение сообществ

1.4. Алгоритмы выделения сообществ в онлайновых социальных сетях

1.4.1. Кластеризация графов

1.4.2. Выделение пересекающихся сообществ

1.4.3. Выделение сообществ с использованием атрибутов вершин

1.4.4. Выделение пересекающихся сообществ по атрибутам вершин

1.4.5. Метки сообществ

1.4.6. Устойчивость к отсутствию атрибутов

1.5. Оценка качества выделения сообществ

1.5.1. Внутренние меры

1.5.2. Внешние меры и наборы данных

1.6. Система сбора данных

1.6.1. Методы доступа к данным онлайновой социальной сети

1.6.2. Система задач

1.7. Постановка задач исследования

1.8. Выводы по первой главе

Глава 2. Разработка и исследование методов анализа графов

ближайшего окружения пользователей

2.1. Алгоритм выделения сообществ

2.1.1. Описание алгоритма

2.1.1.1 Получение ядер сообществ

2.1.1.2 Добавление вершин на пересечениях

2.1.1.3 Разбиение сообществ на компоненты связности

2.1.1.4 Получение меток сообществ

2.1.1.5 Получение сообществ без общего атрибута

2.1.1.6 Доли, определяющие большинство

2.1.2. Вариант алгоритма для выделения непересекающихся сообществ

2.1.3. Оценка сложности

2.1.4. Масштабируемость

2.2. Метод обнаружения ботов

2.2.1. Описание метода

2.2.2. Применение метода обнаружения ботов в системах мониторинга онлайновых социальных сетей

2.3. Метод определения скрытых или неуказанных атрибутов профилей

2.3.1. Описание метода

2.3.2. Упрощенный алгоритм выделения сообществ

2.3.3. Отбор атрибутов

2.3.4. Альтернативные методы, основанные на анализе атрибутов

2.3.5. Раскрытие личности анонимных пользователей

2.4. Выводы по второй главе

Глава 3. Разработка программного обеспечения системы сбора и

анализа данных из онлайновых социальных сетей

3.1. Система сбора данных

3.1.1. Требования к системе

3.1.2. Описание системы

3.1.2.1 Программа сбора данных

3.1.2.2 Сервер задач

3.1.2.3 База данных

3.1.3. Реализация программы сбора данных

3.1.3.1 Инициализация и конфигурация

3.1.3.2 Класс потока

3.1.3.3 Классы парсеров

3.1.3.4 Вспомогательные классы для работы с прокси

3.1.3.5 Завершение работы

3.2. Программное обеспечение для получения графа из базы данных

3.3. Классы парсеров для сбора данных из онлайновых социальных

сетей

3.3.1. LiveJoumal

3.3.2. ВКонтакте

3.4. Реализация программного обеспечения анализа графов ближайшего окружения пользователей

3.4.1. Алгоритм выделения сообществ

3.4.1.1 Описание классов

3.4.1.2 Основные функции

3.4.1.3 Функции ввода-вывода

3.4.2. Метод обнаружения ботов

3.4.2.1 Вспомогательные классы и функции

3.4.2.2 Основной метод

3.4.3. Методы определения скрытых или неуказанных атрибутов профилей

3.4.3.1 Вспомогательные функции

3.4.3.2 Основной метод

3.4.3.3 Реализация других методов

3.5. Выводы по третьей главе

Глава 4. Эмпирическое исследование разработанных методов

4.1. Сбор данных из онлайновых онлайновых социальных сетей

4.1.1. LiveJoumal

4.1.2. ВКонтакте

4.2. Оценка качества разработанного алгоритма выделения сообществ

4.2.1. Методика оценки

4.2.2. Результаты

4.2.3. Качественный анализ полученных сообществ

4.2.4. Устойчивость к частичному отсутствию атрибутов

4.2.5. Скорость работы

4.3. Экспериментальная проверка предложенного метода обнаружения ботов

4.3.1. Методика проверки

4.3.2. Подбор параметров метода

4.3.3. Результаты

4.4. Экспериментальная проверка разработанного метода

определения скрытых или неуказанных атрибутов профилей

4.4.1. Методика оценки

4.4.2. Отбор атрибутов

4.4.3. Результаты

4.4.4. Устойчивость к частичному отсутствию атрибутов

4.5. Репрезентативность наборов данных

4.6. Выводы по четвертой главе

Общие выводы и заключение

Список литературы

Публикации автора по теме диссертации

Приложение

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Алгоритмическое и программное обеспечение анализа графов ближайшего окружения для выявления ботов и определения неуказанных атрибутов пользователей в онлайновых социальных сетях»

Введение

Онлайновые социальные сети (ОСС) стали альтернативными СМИ: многие пользователи доверяют информации, полученной из социальных сетей больше, чем традиционным источникам новостей — телевидению и газетам. ОСС являются сложными программными системами обмена, передачи и анализа глобально распределенных данных, в которых циркулирует информация, отражающая события в мире. Для анализа общественного мнения используются системы мониторинга ОСС (СМОСС), которые представляют собой программно-аппаратные комплексы для сбора, извлечения, структуризации, хранения и анализа данных, полученных из ОСС.

При этом большинство существующих СМОСС ориентированы на сбор количественных показателей, таких как количество записей по теме, количество положительных оценок к ним и их эмоциональный окрас. В связи с этим на них можно повлиять извне: при наличии достаточного количества ресурсов злоумышленник может поспособствовать искусственному росту числа сообщений с определенной точкой зрения, манипулируя таким образом общественным мнением. За счет этого в последние года ОСС стали площадкой для информационного противоборства. Для подобных действий используются учетные записи, через которые автоматически или автоматизированно публикуются сообщения, — боты, которых также называют виртуальными пользователями. Другая проблема заключается в анализе аудитории, вовлеченной в обсуждение какой-либо темы. Несмотря на то, что ОСС побуждает пользователей предоставлять достаточно много информации о себе, не все это делают, а доступ к ней может быть частично ограничен настройками приватности. Таким образом, возникают актуальные задачи разработки математического и программного обеспечения для анализа ОСС, а именно обнаружения ботов и определения скрытых или неуказанных атрибутов профилей пользователей ОСС. Решение этих задач будет способствовать увеличению эффективности анализа ОСС и повышению релевантности информации в СМОСС.

Вопросами мониторинга и анализа ОСС занимаются такие отечественные и зарубежные ученые, как Д.А. Губанов, Д.А. Новиков, А.Г. Чхартишвили, М.А. Басараб, Ю.Лесковец, К. Безносов, Ч. Янг, Я. Бошмаф, Я. Раткевич, К. Ли, Дж. Кейверли, М. Коновер и др. Одной из основных моделей ОСС является граф,

вершинами которого являются профили пользователей ОСС, а ребрами — взаимодействия между ними. При этом особенностью таких графов является их неоднородность: группы вершин, расположенных близко друг к другу, и имеющих много связей между собой, образуют сообщества. В большинстве методов обнаружения ботов, основанных на анализе сообществ, рассматривается общий граф ОСС либо его достаточно большой подграф. Однако Ч. Янг, К. Ли и другие ученые показали, что боты со сложной логикой могут не образовывать сообщества, а устанавливать связи случайным образом. Отличить таких ботов от настоящих пользователей позволит анализ сообществ их локального графа — графа ближайшего окружения (ГБО). Такой анализ также является многообещающим подходом к определению скрытых или неуказанных атрибутов профилей пользователей, однако он пока плохо изучен.

Стоит отметить, что задача выделения сообществ является нетривиальной даже для человека. Существующие алгоритмы дают низкие результаты на выборках из ОСС с известной структурой сообществ. Отдельной проблемой является высокая вычислительная сложность многих алгоритмов, что ограничивает их применение в системах полномасштабного мониторинга ОСС. Кроме того, лишь немногие из них используют атрибуты вершин и позволяют выделять пересекающиеся сообщества. При этом в литературе практически не уделяется внимание возможности частичного отсутствия атрибутов вершин.

Объектом исследования являются онлайновые социальные сети.

Предметом исследования является структура графов ближайшего окружения пользователей ОСС.

Целью работы является разработка методов, алгоритмов и программного обеспечения для анализа ОСС, предназначенных для повышения релевантности информации в СМОСС путем обнаружения ботов и определения скрытых или неуказанных атрибутов профилей ОСС. Разрабатываемые методы и алгоритмы должны сочетать высокое качество работы и низкую вычислительную сложность. В рамках цели были поставлены следующие задачи:

1. Разработать алгоритм выделения сообществ ГБО из ОСС, использующий информацию об атрибутах вершин, допускающий пересечение сообществ и устойчивый к частичному отсутствию атрибутов.

2. Разработать метод обнаружения ботов в ОСС, основанный на анализе сообществ ГБО.

3. Разработать метод определения скрытых или неуказанных атрибутов профиля пользователя ОСС по структуре и атрибутам вершин ГБО.

4. Создать программное обеспечение для сбора и анализа данных из ОСС, реализовать программно разработанные методы.

5. Провести экспериментальную оценку качества разработанных методов и алгоритмов на выборках ГБО пользователей из ОСС.

Научная новизна:

1. Впервые для обнаружения ботов разработан метод, основанный на анализе сообществ ГБО из ОСС; его применение позволит эффективно обнаруживать ботов в ОСС.

2. Предложен новый метод определения скрытых или неуказанных атрибутов пользователя ОСС, основанный на выделении сообществ ГБО и, в отличие от существующих, использующий метки сообществ. Применение этого метода позволит существенно повысить точность и полноту автоматического определения скрытых или неуказанных атрибутов профилей пользователей.

3. Разработан алгоритм выделения сообществ ОСС. В отличие от существующих, он одновременно обладает следующими свойствами: использует информацию как о структуре графа ОСС, так и об атрибутах его вершин; может выделять пересекающиеся сообщества; основан на переносе атрибутов; имеет квазилинейную сложность; присваивает полученным сообществам метки, которые могут быть использованы для их описания.

4. Разработано оригинальное ПО, позволяющее исследовать устойчивость алгоритмов выделения сообществ и методов определения атрибутов пользователей ОСС к частичному отсутствию атрибутов.

Практическая значимость полученных результатов заключается в возможности повысить релевантность информации в СМОСС и эффективность процессов обработки данных в ней. При условии внедрения разработанных методов сложность создания правдоподобных ботов ОСС существенно возрастает. Определение атрибутов профилей позволит повысить качество анализа общественного мнения и другой информации из ОСС. Помимо этого, разработанный алгоритм выделения сообществ является универсальным и может быть использован для решения других прикладных задач в сетях с атрибутами вершин. Прак-

тическую ценность также представляет разработанное ПО для распределенного сбора и анализа данных из ОСС.

Методы исследования. Для решения поставленных задач использованы методы теории графов, теории анализа социальных сетей, математической статистики, инженерии ПО, а также методы теории сложности. В качестве языков программирования в работе были использованы Python 2.7 и C++11.

Основные положения и результаты, выносимые на защиту:

1. Квазилинейный алгоритм выделения пересекающихся сообществ в социальных сетях с атрибутами, основанный на переносе атрибутов от соседних вершин, устойчивый к их частичному отсутствию и ставящий в соответствие выделенным сообществам набор атрибутов (метку). Предложенный алгоритм превосходит аналоги по значениям Fi-меры и индекса Жаккара на выборках данных из ОСС Facebook и Twitter, что подтверждено эмпирически с помощью разработанного ПО.

2. Метод обнаружения ботов в ОСС, основанный на качественном анализе сообществ ГБО из ОСС. Характеристики сообществ в сочетании с набором из нескольких пороговых правил позволяют обнаружить ботов с высокими показателями точности и полноты.

3. Метод определения скрытых или неуказанных атрибутов профиля пользователя ОСС, основанный на анализе меток сообществ его ГБО. Объединение множеств атрибутов меток сообществ позволяет определять некоторые атрибуты профиля пользователя с высокой точностью и полнотой, что подтверждается вычислительным экспериментом с разработанным ПО.

Соответствие паспорту научной специальности. В диссертации разработаны методы и алгоритмы анализа ОСС и ее модели в виде социального графа. Предложенные методы и алгоритмы работают с его подграфами, ГБО, и реализованы программно; а для организации их взаимодействия с ОСС разработано ПО. Таким образом, результаты диссертации соответствуют пунктам 1 и 3 паспорта научной специальности 05.13.11.

Достоверность полученных результатов обеспечивается корректным применением математического аппарата и подтверждается результатами вычислительных экспериментов с использованием разработанного ПО, проведенных на больших выборках данных из ОСС с размеченными истинными данными.

Апробация работы. Основные результаты работы представлены автором на Шестой, Седьмой и Восьмой Всероссийской научно-технической конференции «Безопасные информационные технологии» (г.Москва, 2015, 2016 и 2017 гг.); XXIII Международной научной конференции студентов, аспирантов и молодых ученых «Ломоносов-2016» (г.Москва, 2016г.); The 6th International Conference on Network Analysis «NET 2016» (г. Нижний Новгород, 2016 г.) и обсуждены на научных семинарах в МГТУ им. Н.Э. Баумана, Институте проблем управления им. В.А. Трапезникова РАН и НИЯУ МИФИ.

Внедрение результатов работы. Разработанные автором методы и алгоритмы были использованы в научно-производственной деятельности ООО «ИН-ФОРИОН» в рамках проекта мониторинга социальных сетей «Система-47» и были внедрены в НИОКР ФГУП «18 ЦНИИ» МО РФ. Теоретические результаты внедрены в учебный процесс МГТУ им. Н.Э. Баумана.

Публикации и личный вклад автора. Основные результаты изложены в 12 статьях, 5 из которых изданы в журналах, рекомендованных ВАК, а две — в изданиях, индексируемых международной системой научного цитирования Scopus. Все основные результаты получены автором лично.

Диссертационная работа выполнена при поддержке гранта РФФИ № 16-29-09517 офи_м «Методы и алгоритмы выявления сообществ и организации информационного противоборства в социальных сетях на основе байесовских и теоретико-игровых подходов с использованием графовых и фрактальных моделей».

Объем и структура работы

Диссертация состоит из введения, четырех глав, заключения и 10 приложений. Полный объём диссертации составляет 200 страниц, включая 22 рисунка и 20 таблиц. Список литературы содержит 191 наименование.

В первой главе приведен обзор предметной области. В ней даны основные определения. Описана проблемы анализа онлайновых социальных сетей системами мониторинга — возможность влияния на их показатели путем публикации большого числа записей через ботов. Обозначена проблема частичного отсутствия атрибутов в профилях пользователей ОСС. Рассмотрены основные методы обнаружения ботов и определения скрытых или неуказанных атрибутов профилей пользователей ОСС. Сделан вывод, что обе задачи могут быть реше-

ны с использованием алгоритма выделения сообществ. Приведен краткий обзор таких алгоритмов и способов оценки качества их работы. Для получения тестовых выборок необходимо разработать систему сбора данных. В конце главы приведен обзор подходов к созданию такой системы.

Вторая глава посвящена разработке методов анализа графов ближайшего окружения из ОСС. В ней описан разработанный алгоритм выделения сообществ. На его основе предложены методы обнаружения ботов и определения скрытых или неуказанных атрибутов пользователей ОСС.

В третьей главе описываются архитектура и программное обеспечение для сбора и анализа данных из социальной сети. Описано ПО, реализующее разработанные во второй главе алгоритмы.

В четвертой главе проводится экспериментальная оценка разработанных алгоритмов и методов. С помощью системы сбора получены тестовые выборки графов ближайшего окружения пользователей из онлайновых социальных сетей LiveJoumal и ВКонтакте. Приведены результаты сравнительной оценки качества работы алгоритмов выделения сообществ на известных выборках данных. На примере графа автора проведен качественный анализ полученных сообществ. Кроме того, глава содержит результаты исследования устойчивости алгоритмов выделения сообществ к частичному отсутствию атрибутов вершин и сравнительный анализ скорости работы алгоритмов. Приведены результаты тестирования метода обнаружения ботов на выборках графов из ОСС LiveJoumaL Осуществлено тестирование методов определения неизвестных атрибутов профилей ОСС на известных выборках данных и выборках, полученных с помощью системы сбора. Исследована их устойчивость к частичному отсутствию атрибутов.

Приложения содержат исходный код разработанного в рамках исследования программного обеспечения, а также вспомогательные материалы, включение которых в основной текст работы автор счел нецелесообразным.

Глава 1. Особенности онлайновых социальных сетей как программной

системы

1.1. Проблемы анализа онлайновых социальных сетей

В литературе (см., например, [101; 125]) термин «социальная сеть» имеет довольно общее определение, имеющее социологическую природу: множество социальных или межличностных отношений, объединяющее индивидуумов в социальные группы. Схожее определение дает Оксфордский словарь английского языка для словосочетания «social network». Однако он дает и другую трактовку, определяя социальную сеть как веб-сайт или другое приложение, позволяющее пользователям общаться друг с другом посредством публикации информации, комментариев, сообщений, изображений и др. [150]. Хорошее определение социальной сети дано в работе [36], и именно оно будет взято за основу, дополненное определением из Оксфордского словаря.

Таким образом, под онлайновой социальной сетью (ОСС) будем понимать ресурс (сайт), содержащий данные пользователей и связи между ними и позволяющий пользователю [36; 150]:

1) создавать публичный или частично публичный профиль (аккаунт), в котором он может указывать личную информацию;

2) задавать и поддерживать список других пользователей, с которыми у него имеются некоторые отношения (например, дружбы, родства, деловых и рабочих связей и т. п.);

3) просматривать свой и чужие списки связей и посещать профили из этих списков;

4) создавать публичные записи и комментировать записи других пользователей;

5) обмениваться с другими пользователями сообщениями, изображениями и другой мультимедийной информацией;

6) объединяться с другими пользователями в группы (сообщества) по интересам.

При этом онлайновая социальная сеть является системой программных и аппаратных средств для хранения, передачи и анализа информации, состоящий из большого количества глобально распределенных серверов, нескольких разнородных СУБД и десятков (сотен) программных систем со сложными связями.

Похожего определения придерживаются Губанов и Чхартишвили в своих работах [7; 8]. Природа связей между пользователями может меняться в зависимости от ОСС [36]. Под социальной связью будем понимать любую связь между двумя пользователями, указанную в ОСС и свидетельствующую о наличии регулярного взаимодействия между этими пользователями. Простейшими примерами социальных связей могут быть родственные или дружественные отношения. Социальные связи могут быть направленными, т. е. взаимодействие может быть односторонним. Стоит отметить, что природа и название социальных связей может сильно отличаться в различных ОСС, хотя обычно они обозначаются как «дружба». Далее друзьями пользователя в ОСС будем называть тех пользователей, с которыми он установил социальную связь. Граф, вершинами которого являются пользователи, а ребрами — социальные связи, будем называть социальным.

В настоящий момент большинство граждан России, пользующихся интернетом, имеют аккаунт хотя бы в одной из ОСС [155], при этом уделяя им в среднем около двух часов в день. По информации компании Brand Analytics, в месяц пользователи ОСС в России публикуют более миллиарда записей [145]. При этом число уникальных авторов за месяц превышает отметку в 20 миллионов [175]. Согласно данным eMarketer [148], по сравнению с 2010 годом число пользователей ОСС выросло почти на две трети: с 41,7 до 68,5 миллионов.

Активный рост пользователей ОСС и возможность создания публично доступных записей привели к тому, что ОСС стали альтернативными СМИ. Согласно данным ВЦИОМ [176], для поиска информации более 27% россиян используют интернет, при этом он является основным источником новостей более чем для 62% молодых людей. Многие пользователи доверяют информации, полученной из социальных сетей («сарафанному радио») больше, чем традиционным источникам новостей — телевидению и газетам [176; 178; 190]. Косвенно данный факт подтверждается недавно принятым федеральным законом № 97-ФЗ от 5 мая 2014 года, приравнивающим крупных блогеров к СМИ.

Почти каждая крупная компания имеет представительство в нескольких ОСС, а некоторые мелкие представлены только таким образом. Корпорации стараются быть ближе к конечному потребителю, и в удобной ему форме отвечают на вопросы и помогают решать проблемы, связанные с их товарами или услугами. Однако стоит отметить, что есть и негативные стороны использования ОСС компаниями. Взлом аккаунта компании или использование похожего профиля

может вызвать обвал акций [144; 151]. При этом, по некоторым оценкам [167], 20% аккаунтов брендов в ОСС — ненастоящие.

Многие политики имеют свои страницы в ОСС, а некоторые их записи вызывали большой резонанс. Социальные сети могут повлиять на исход выборов посредством влияния на общественное мнение [49; 90]. В работе [1] была выявлена прямая корреляция между событиями протестов на Украине и деятельностью населения в ОСС: чем больше накалялась обстановка, тем активнее граждане обсуждали ее в сети. В свою очередь, события «арабской весны» наглядно продемонстрировали, что ОСС могут играть серьезную роль в развитии политических событий и являться площадкой для информационного противоборства [5; 78]: взаимодействия нескольких субъектов, обладающих несовпадающими интересами и осуществляющих информационные воздействия на один и тот же управляемый субъект [7]. При этом они могут быть использованы как средство распространения дезинформации [7] и пропаганды [17; 186; 188].

Разумеется, рост активности использования ОСС не может быть оставлен в стороне различными исследователями. Еще в конце 90-х начались поиск и изучение различных моделей взаимодействий в социальных сетях. Подробный обзор представлен в [6]. Однако существующие системы мониторинга (по крайней мере, предоставляющие информацию о своих возможностях), по большей части не используют богатое разнообразие математических моделей [3]. В основном мониторинг представляет собой сбор количественных показателей, таких как количество записей по теме, количество положительных оценок («лайков») к ним и т. п. Часто применяется анализ эмоционального окраса сообщений и строится тренд количественных характеристик [3; 22; 177; 178]. В последнее время все больше становится популярным мониторинг ОСС с точки зрения рейтинга какого-либо продукта или бренда [21; 22; 187; 189]. Подобный анализ представляют такие компании как Brand Analytics [146], Wobot [170], YouScan [171], IQBuzz [181] и др. На основе данных, автоматически собранных из ОСС, проводится оценка популярности и востребованности продукта или услуги, а также реакции потребителей на проведенные акции и специальные предложения [21; 22; 179].

Традиционно считается, что ОСС почти не регулируются государством [5]. Однако еще в 2012 году служба внешней разведки России разместила заказ на разработку системы мониторинга и влияния на ОСС [186]. В основном интерес

спецслужбы состоял в мониторинге подозрительной активности в ОСС, создании систем раннего предупреждения о различных угрозах и формировании общественного мнения путем «вбросов» через сеть ботов. Система мониторинга СМИ и ОСС, предназначенная для отслеживания и анализа военно-политической, социально-экономической и общественно-политической обстановки в России и за рубежом, является частью Национального центра управления обороной Министерства обороны РФ [180; 184]. Подобные системы имеются у МВД, ФСБ [188], у администрации президента [178], следственного комитета РФ и многих других федеральных служб РФ [177].

Разведка на основе открытых источников (OSINT) является одной из основных разведывательных дисциплин. Бывший глава Разведуправления минобороны США считает, что до 90% разведданных управление получало из открытых источников [182]. Пропаганда в интернете проводилась британскими и американскими спецслужбами по поводу событий в Афганистане, Ираке и Пакистане [188]. В 2011 году DARPA объявило тендер на разработку SMISC — системы для отслеживания пропаганды против США и помощи в ведении контрпропаганды [186]. На мониторинг ОСС был заказ и у ФБР. В бюро отметили, что «социальные сети стали основным источником разведывательной информации, так как в них можно найти первую реакцию на ключевые события» [191].

Расцвет ОСС существенно облегчил работу агентствам, занимающимися опросами населения [10; 23]. Вместо опросов прохожих на улицах и специальных центрах, исследователи теперь могут проводить анализ общественного мнения с помощью ОСС. При этом участник опроса теперь не заполняет объемную анкету-опросник: необходимую информацию социолог может получить из его публичного профиля. Кроме того, существенно повышается репрезентативность выборки: вместо нескольких сотен с улицы с помощью ОСС можно опросить гораздо больше людей [9]. Преимуществом опросов через интернет также являются возможность управления его временными параметрами и легкость процедур контроля над выборочными индивидуумами [9]. Однако некоторые исследователи критично относятся к данным особенностям. В работе [16] отмечается, что сетевая общественность не может в полной мере выступить выборочной совокупностью из-за фрагментированности и неполного обхвата реального населения. Кроме того, возможность частичного сокрытия информации профиля и создания анонимных профилей может привести к низкой эффективности выбор-

ки из-за проблем с идентификацией пользователя и его атрибутов [19]. Несмотря на эти критические замечания, за последнее время было проведено множество работ с использованием мониторинга ОСС, как российскими исследователями, так и зарубежными.

В целом можно выделить следующие категории заказчиков систем мониторинга ОСС [3].

- органы государственной власти, как федеральные, так и местные; политические партии;

- силовые службы;

- коммерческие предприятия (в особенности «брендовые»);

- исследовательские организации;

- средства массовой информации;

- другие заинтересованные лица.

Таким образом, мониторинг ОСС является передовым инструментом для анализа общественного мнения, которое, в свою очередь, играет роль в принятии как политических, так и экономических решений. Ответственные лица заинтересованы в получении актуальной и достоверной информации из ОСС. Губанов и др. [3; 8; 18] выделяют три основных задачи, связанные с социальными сетями:

- мониторинг и анализ;

- прогнозирование;

- информационное управление.

При этом среди задач мониторинга можно выделить оценку естественности обсуждения, выявление активных групп и сообществ, оценку влиятельности пользователей и определение атрибутов профилей пользователей [8]. Мониторинг и анализ текущего состояния ОСС необходим для отслеживания ее развития с учетом управляющих воздействий или без них [18].

Одна из основных проблем существующих систем мониторинга ОСС заключается в том, что они ориентированы на слежение за количественными показателями, часто только по ограниченному набору запросов [3; 8]. Запросы обычно представляют собой набор ключевых слов и словосочетаний, поэтому автоматизированная или автоматическая публикация большого количество сообщений («накрутка») от аккаунтов ботов (виртуальных пользователей) может существенно повлиять на систему. Таким образом, одной из проблем анализа ОСС является обеспечения высокой релевантности поиска: требуется отсеива-

ние результатов, источником которых являются боты. Для решения этой проблемы необходимо применение методов выявления ботов.

При анализе общественного мнения необходимо учитывать информацию о личности пользователя. Хотя ОСС предоставляют богатые возможности по созданию виртуальных профилей, не все пользователи указывают полную информацию о себе. Отдельная задача заключается в определении скрытых или неуказанных атрибутов профиля пользователя. Решение этой задачи позволит повысить качество анализа общественного мнения и релевантность информации в системах мониторинга ОСС.

1.2. Методы обнаружения ботов в онлайновых социальных сетях

онлайновой социальной сети бот, или виртуальный пользователь — это учетная запись (аккаунт), связанная с программой, выполняющей некоторые действия через интерфейс социальной сети автоматически и/или по заданию. Соответственно, ботов можно разделить на две категории [15; 120; 126]: управляемые и автоматические. При этом аккаунт может быть специально создан злоумышленником или отнят у легитимного пользователя [48].

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Список литературы диссертационного исследования кандидат наук Чесноков Владислав Олегович, 2019 год

Список литературы

1. Абрамов М. В., Вахромеева А. В. Программное обеспечение для мониторинга социальных медиа (на примере анализа ситуации в Украине) // IV международная социологическая конференция «Продолжая Грушина». М.: ВЦИОМ, 2014. С. 138—140.

2. Анализ социальных сетей: методы и приложения / А. В. Коршунов [и др.] // Труды Института системного программирования РАН. 2014. Т. 26, вып. 1. С. 439—456.

3. Базенков Н. И., Губанов Д. А. Обзор информационных систем анализа социальных сетей // Управление большими системами: сборник трудов. 2013. №41. С. 357—394.

4. Бузун Н. О., Коршунов А. В. Выявление пересекающихся сообществ в социальных сетях // Доклады Всероссийской научной конференции «Анализ изображений, сетей и текстов». Екатеринбург. 2012. С. 87—96.

5. Вельц С. В. Моделирование информационного противоборства в социальных сетях на основе теории игр и динамических байесовских сетей. // Инженерный журнал: наука и инновации. Электронное научное техническое издание. 2013. № 11(23). С. 39—51.

6. Губанов Д. А., Новиков Д. А., Чхартишвили А. Г. Модели информационного влияния и информационного управления в социальных сетях // Проблемы управления. 2009. № 5. С. 28—35.

7. Губанов Д. А., Новиков Д. А., Чхартишвили А. Г. Социальные сети: модели информационного влияния, управления, противоборства / под ред. чл.-корр. РАН Д.А. Новикова. 2-е изд. М.: Издательство физико-математической литературы, 2010. 228 с.

8. Губанов Д. А., Чхартишвили А. Г. Концептуальный подход к анализу онлайновых социальных сетей // Управление большими системами: сборник трудов. 2013. Т. 45. С. 222—236.

9. Девятко И. Ф. Онлайн исследования и методология социальных наук: новые горизонты, новые (и не столь новые) трудности // Онлайн исследования в России 2.0 / под ред. А. В. Шашкина, И. Ф. Девятко, С. Г. Давыдова. М.: РИЦ «Северо-Восток», 2010. С. 17—30.

10. Дьякова М. В. Будущее онлайн-исследований: ожидать ли конца света, или какие альтернативные источники формирования выборок придут на смену традиционным онлайн-панелям? // Онлайн исследования в России 3.0 / под ред. А. В. Шашкина, И. Ф. Девятко, С. Г. Давыдова. М.: Издательский дом «Кодекс», 2012. С. 101—107.

11. Елисеева И. И., Юзбашев М. М. Общая теория статистики: Учебник / под ред. чл.-корр. РАН И.И. Елисеевой. М.: Финансы и статистика, 2004. 656 с.

12. Зейн А. Н. Исследование и разработка методов автоматической кластеризации интернет-пользователей и интернет-ресурсов для персонализации поиска : дис. ... канд. техн. наук. М. 2014. 303 с.

13. Коршунов А. В. Задачи и методы определения атрибутов пользователей социальных сетей // Труды 15-й Всероссийской научной конференции «Электронные библиотеки: перспективные методы и технологии, электронные коллекции». 2013. С. 380—390.

14. Коршунов А. В. Исследование структуры сообществ пользователей в графах онлайновых социальных сетей : дис. ... канд. физ.-мат. наук. М. 2015. 134 с.

15. Лыфенко Н. Д. Виртуальные пользователи в социальных сетях: мифы и реальность // Вопросы кибербезопасности. 2014. № 5(8). С. 17—20.

16. Михайлов В. А., Михайлов С. В. Общественное мнение и социальные сети // IV международная социологическая конференция «Продолжая Гру-шина». М.: ВЦИОМ, 2014. С. 171—174.

17. Ненашев С. М. Информационно-технологическая и информационно-психологическая безопасность пользователей социальных сетей // Вопросы кибербезопасности. 2016. № 5(18). С. 65—72.

18. Новиков Д. А. Структура теории управления социально-экономическими системами // Управление большими системами: сборник трудов. 2009. Т. 24. С. 216—257.

19. Паутова Л. А. «Активная социология»: опыт вовлечения пользователей социальных сетей в социологические, лонгитюдные и краудсорсинговые проекты // IV международная социологическая конференция «Продолжая Грушина». М.: ВЦИОМ, 2014. С. 178—179.

20. Сивоголовко Е. В. Оценка качества кластеризации в задачах интеллектуального анализа данных : дис. ... канд. физ.-мат. наук. СПб. 2014. 92 с.

21. Ткачев О. В. Онлайн-исследования для офлайн-брендов // Онлайн исследования в России 3.0 / под ред. А. В. Шашкина, И. Ф. Девятко, С. Г. Давыдова. М.: Издательский дом «Кодекс», 2012. С. 239—247.

22. Тутубалина Е. В. Методы извлечения и резюмирования критических отзывов пользователей о продукции : дис. ... канд. физ.-мат. наук. Казань. 2016. 145 с.

23. Хазеева Н. М. Социальные медиа: Vox Populi или специфика нового канала изучения мнения потребителей // Онлайн исследования в России 3.0 / под ред. А. В. Шашкина, И. Ф. Девятко, С. Г. Давыдова. М.: Издательский дом «Кодекс», 2012. С. 109—129.

24. Якушев А. В. Математическое и программное обеспечение распределенной обработки больших объемов данных из социальных медиа : дис. ... канд. техн. наук. СПб. 2013. 125 с.

25. A Brief History of Web Crawlers / S. M. Mirtaheri [et al.] // Proceedings of the 2013 Conference of the Center for Advanced Studies on Collaborative Research. Ontario, Canada: IBM Corp., 2013. P. 40-54.

26. Adamic L. A., Glance N. The Political Blogosphere and the 2004 U.S. Election: Divided They Blog // Proceedings of the 3rd International Workshop on Link Discovery. Chicago, Illinois: ACM, 2005. P. 36-43.

27. Agha G. Actors: A Model of Concurrent Computation in Distributed Systems. Cambridge, MA, USA: MIT Press, 1986. 190 p.

28. Ahn Y.-Y. Y., Bagrow J. P., Lehmann S. Link communities reveal multiscale complexity in networks. // Nature. 2010. Vol. 466, № 7307. P. 761-764.

29. Aiding the Detection of Fake Accounts in Large Scale Social Online Services / Q. Cao [et al.] // Presented as part of the 9th USENIX Symposium on Networked Systems Design and Implementation (NSDI 12). San Jose, CA: USENIX, 2012. P. 197-210.

30. An Analysis of Social Network-based Sybil Defenses / B. Viswanath [et al.] // SIGCOMM Comput. Commun. Rev. 2010. Vol. 40, № 4. P. 363-374.

31. Backstrom L., Sun E., Marlow C. Find Me if You Can: Improving Geographical Prediction with Social and Spatial Proximity // Proceedings of the 19th International Conference on World Wide Web. Raleigh, North Carolina, USA: ACM, 2010. P. 61-70.

32. Balasubramanyan R., Cohen W. W. Block-LDA: Jointly Modeling Entity-Annotated Text and Entity-Entity Links // Handbook of Mixed Membership Models and Their Applications. 2014. P. 255-273.

33. Bhattacharyya P., Garg A., Wu S. F. Analysis of user keyword similarity in online social networks // Social Network Analysis and Mining. 2010. Vol. 1, № 3. P. 143-158.

34. Blei D. M., Ng A. Y., Jordan M. I. Latent Dirichlet Allocation // J. Mach. Learn. Res. 2003. Vol. 3. P. 993-1022.

35. Boshmaf Y., Beznosov K., Ripeanu M. Graph-based Sybil Detection in Social and Information Systems // Proceedings of the 2013 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining. Niagara, Ontario, Canada: ACM, 2013. P. 466-473.

36. Boyd D. M., Ellison N. B. Social network sites: Definition, history, and scholarship // Journal of Computer-Mediated Communication. 2007. Vol. 13, № 1. P. 210-230.

37. Brin S., Page L. The Anatomy of a Large-scale Hypertextual Web Search Engine // Comput. Netw. ISDN Syst. 1998. Vol. 30, № 1-7. P. 107-117.

38. Chaabane A., Acs G., Kaafar M. You Are What You Like! Information Leakage Through Users' Interests // Proc. Annual Network and Distributed System Security Symposium. San Diego, United States. 2012. P. 1-14.

39. Cheng Z., Caverlee J., Lee K. You Are Where You Tweet: A Content-based Approach to Geo-locating Twitter Users // Proceedings of the 19th ACM International Conference on Information and Knowledge Management. Toronto, ON, Canada: ACM, 2010. P. 759-768.

40. Classifying Latent User Attributes in Twitter / D. Rao [et al.] // Proceedings of the 2Nd International Workshop on Search and Mining User-generated Contents. Toronto, ON, Canada: ACM, 2010. P. 37-44.

41. Clauset A., Newman M. E. J., Moore C. Finding community structure in very large networks // Phys. Rev. E. 2004. Vol. 70, issue 6. P. 1-6.

42. Clustering attributed graphs: Models, measures and methods / C. Bothorel [et al.] // Network Science. 2015. Vol. 3, № 3. P. 408-444.

43. Community detection in Social Media / S. Papadopoulos [et al.] // Data Mining and Knowledge Discovery. 2012. Vol. 24, № 3. P. 515-554.

44. Community Structure in Large Networks: Natural Cluster Sizes and the Absence of Large Well-Defined Clusters / J. Leskovec [et al.] // Internet Mathematics. Vol. 6. 2008. P. 29-123.

45. Community structure in time-dependent, multiscale, and multiplex networks / P. J. Mucha [et al.] // Science. 2010. Vol. 328, № 5980. P. 876-878.

46. Culnane C., Rubinstein B. I. P., Teague V. Health Data in an Open World // CoRR. 2017. Vol. abs/1712.05627. P. 1-23.

47. Dean J., Ghemawat S. MapReduce: Simplified Data Processing on Large Clusters // Commun. ACM. 2008. Vol. 51, № 1. P. 107-113.

48. Design and Analysis of a Social Botnet / Y. Boshmaf [et al.] // Computer Networks. 2013. Vol. 57, № 2. P. 556-578.

49. Detecting and Tracking Political Abuse in Social Media / J. Ratkiewicz [et al.] // Proc. 5th International AAAI Conference on Weblogs and Social Media (ICWSM). North America. 2011. P. 297-304.

50. Detecting Automation of Twitter Accounts: Are You a Human, Bot, or Cyborg? / Z. Chu [et al.] // IEEE Transactions on Dependable and Secure Computing. Los Alamitos, CA, USA, 2012. Vol. 9, № 6. P. 811-824.

51. Detecting spammers on social networks / X. Zheng [et al.] // Neurocomputing. 2015. Vol. 159. P. 27-34.

52. Dickerson J. P, Kagan V., Subrahmanian V. S. Using sentiment to detect bots on Twitter: Are humans more opinionated than bots? // 2014 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining, ASONAM 2014, Beijing, China, August 17-20, 2014. 2014. P. 620-627.

53. Discriminating gender on Twitter / J. D. Burger [et al.] // Proceedings of the Conference on Empirical Methods in Natural Language Processing. Association for Computational Linguistics. 2011. P. 1301-1309.

54. Dougnon R. Y., Fournier-Viger P., Nkambou R. Inferring User Profiles in Online Social Networks Using a Partial Social Graph // Advances in Artificial Intelligence: 28th Canadian Conference on Artificial Intelligence, Canadian AI 2015, Halifax, Nova Scotia, Canada, June 2-5, 2015, Proceedings. Cham: Springer International Publishing, 2015. P. 84-99.

55. Dunbar R. I. M. Neocortex size as a constraint on group size in primates // Journal of Human Evolution. 1992. Vol. 22, № 6. P. 469-493.

56. Easley D., Kleinberg J. Networks, Crowds, and Markets: Reasoning About a Highly Connected World. New York, NY, USA: Cambridge University Press, 2010. 744 p.

57. Efficient Mining of Combined Subspace and Subgraph Clusters in Graphs with Feature Vectors / S. Gunnemann [et al.] // Advances in Knowledge Discovery and Data Mining: 17th Pacific-Asia Conference, PAKDD 2013, Gold Coast, Australia, April 14-17, 2013, Proceedings, Part I. Berlin: Springer Berlin Heidelberg, 2013. P. 261-275.

58. EgoLP: Fast and Distributed Community Detection in Billion-Node Social Networks / N. Buzun [et al.] // 2014 IEEE International Conference on Data Mining Workshop. 2014. P. 533-540.

59. Extending the definition of modularity to directed graphs with overlapping communities / V. Nicosia [et al.] // Journal of Statistical Mechanics: Theory and Experiment. 2009. Vol. 2009, 03, P03024. P. 1-23.

60. Fast unfolding of communities in large networks / V. D. Blondel [et al.] // Journal of Statistical Mechanics: Theory and Experiment. 2008. Vol. 2008, № 10. P10008.

61. Fortunato S. Community detection in graphs // Physics Reports. 2010. Vol. 486, № 3-5. P. 75-174.

62. Ghosh R., Surachawala T., Lerman K. Entropy-based Classification of 'Retweeting'Activity on Twitter//CoRR. 2011. Vol. abs/1106.0346. P. 1-10.

63. Girvan M., Newman M. E. J. Community Structure in Social and Biological Networks // Proc Natl Acad Sci USA. 2002. Vol. 99, № 12. P. 7821-7826.

64. Granovetter M. The Strength of Weak Ties // American Journal of Sociology. 1973. Vol. 78, № 6. P. 1360-1380.

65. Heydon A., Najork M. Mercator: A Scalable, Extensible Web Crawler // World Wide Web. 1999. Vol. 2, № 4. P. 219-229.

66. Holzmann G. J.The Power of 10: Rules for Developing Safety-Critical Code // Computer. 2006. Vol. 39, № 6. P. 95-97.

67. Homing socialbots: intrusion on a specific organization's employee using Socialbots. / A. Elyashar [et al.] // ASONAM. ACM. P. 1358-1365.

68. Hu L., Chan K. C. C. Fuzzy Clustering in a Complex Network Based on Content Relevance and Link Structures // IEEE Transactions on Fuzzy Systems. 2016. Vol. 24, № 2. P. 456-470.

69. Huang X., Cheng H., Yu J. X.Dense Community Detection in Multi-valued Attributed Networks // Inf. Sci. 2015. Vol. 314. P. 77-99.

70. Hwang T., Pearce I., Nanis M. Socialbots: Voices from the Fronts // Interactions. 2012. Vol. 19, № 2. P. 38-45.

71. Ikawa Y., Enoki M., Tatsubori M. Location Inference Using Microblog Messages // Proceedings of the 21st International Conference on World Wide Web. Lyon, France: ACM, 2012. P. 687-690.

72. Inferring the Location of Twitter Messages Based on User Relationships. / C. A. J. Davis [et al.] // T. GIS. 2011. Vol. 15, № 6. P. 735-751.

73. Inferring User Demographics and Social Strategies in Mobile Social Networks / Y. Dong [et al.] // Proceedings of the 20th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. New York, New York, USA: ACM, 2014. P. 15-24.

74. Innocent by Association: Early Recognition of Legitimate Users / Y. Xie [et al.] // Proceedings of the 2012 ACM Conference on Computer and Communications Security. Raleigh, North Carolina, USA: ACM, 2012. P. 353-364.

75. 'It's Trending on Twitter' — An Analysis of the Twitter Manipulations in the Massachusetts 2010 Special Senate Election / M. R. Just [et al.] // APSA 2012 Annual Meeting Paper. 2012. P. 1-23.

76. Jürgens D. That's What Friends Are For: Inferring Location in Online Social Media Platforms Based on Social Relationships. // Proceedings of the Seventh AAAI International Conference on Weblogs and Social Media. 2013. P. 273282.

77. Kausar M. A., Dhaka V. S., Singh S. K. Web Crawler: A Review // International Journal of Computer Applications. 2013. Vol. 63, № 2. P. 31-36.

78. Khondker H. H. Role of the New Media in the Arab Spring // Globalizations. 2011. Vol. 8, № 5. P. 675-679.

79. Kosinski M., Stillwell D., Graepel T. Private traits and attributes are predictable from digital records of human behavior // Proceedings of the National Academy of Sciences. 2013. Vol. 110, № 15. P. 5802-5805.

80. Lancichinetti A., Fortunato S., Kertesz J.Detecting the overlapping and hierarchical community structure in complex networks // New Journal of Physics. 2009. Vol. 11, issue 3, № 033015. P. 1-18.

81. Lancichinetti A., Fortunato S., Radicchi F. Benchmark graphs for testing community detection algorithms // Phys. Rev. E. 2008. Vol. 78, issue 4, № 046110. P. 1-5.

82. Lazar A., Abel D., Vicsek T. Modularity measure of networks with overlapping communities // EPL (Europhysics Letters). 2010. Vol. 90, № 1. P. 18001.

83. Lee K., Eoff B., Caverlee J. Seven Months with the Devils: A Long-Term Study of Content Polluters on Twitter // Proceedings of 5th International AAAI Conference on Weblogs and Social Media. 2011. P. 185-192.

84. Lee S. , Kim J. Early filtering of ephemeral malicious accounts on Twitter // Computer Communications. 2014. Vol. 54. P. 48-57.

85. Leskovec J., Horvitz E. Planetary-scale views on a large instant-messaging network // Proceedings of the 17th international conference on World Wide Web. New York, NY, USA: ACM, 2008. P. 915-924.

86. Leskovec J., Sosic R. SNAP: A General-Purpose Network Analysis and Graph-Mining Library // ACM Transactions on Intelligent Systems and Technology (TIST). 2016. Vol. 8, № 1. P. 1-20.

87. Li R., Wang C., Chang K. C.-C. User Profiling in an Ego Network: Co-profiling Attributes and Relationships // Proceedings of the 23rd International Conference on World Wide Web. Seoul, Korea: ACM, 2014. P. 819-830.

88. McAuley J., Leskovec J. Discovering Social Circles in Ego Networks // ACM Trans. Knowl. Discov. Data. 2014. Vol. 8, № 1. P. 1-28.

89. McPherson M., Lovin L. S., Cook J. M. Birds of a Feather: Homophily in Social Networks // Annual Review of Sociology. 2001. Vol. 27, № 1. P. 415444.

90. Metaxas P. T., Mustafaraj E. Social Media and the Elections // Science. 2012. Vol. 338, № 6106. P. 472-473.

91. Milgram S. The Small World Problem // Psychology Today. 1967. Vol. 61. P. 60-67.

92. Mixed Membership Stochastic Blockmodels / E. M. Airoldi [et al.] // J. Mach. Learn. Res. 2008. Vol. 9. P. 1981-2014.

93. Neville J., Adler M., Jensen D. Clustering relational data using attribute and link information // In Proceedings of the Text Mining and Link Analysis Workshop, 18th International Joint Conference on Artificial Intelligence. 2003. P. 9-15.

94. Newman M. E. J. Fast algorithm for detecting community structure in networks // Phys. Rev. E. 2004. Vol. 69, issue 6, № 066133. P. 1-5.

95. Newman M. E. J. The structure and function of complex networks // SIAM REVIEW. 2003. Vol. 45. P. 167-256.

96. Newman M. E. J., Girvan M. Finding and evaluating community structure in networks // Phys. Rev. E. 2004. Feb. Vol. 69, issue 2, № 026113. P. 1-15.

97. Nguyen H. T., Dinh T. N. Unveiling the structure of multi-attributed networks via joint non-negative matrix factorization // Military Communications Conference, MILCOM 2015 - 2015 IEEE. 10/2015. P. 1379-1384.

98. Overlapping community detection using Bayesian non-negative matrix factorization / I. Psorakis [et al.] // Phys. Rev. E. 2011. June. Vol. 83, issue 6, № 066114. P. 1-9.

99. Pant G., Srinivasan P. Learning to Crawl: Comparing Classification Schemes // ACM Trans. Inf. Syst. 2005. Vol. 23, № 4. P. 430-462.

100. Paradise A., Puzis R., Shabtai A. Anti-Reconnaissance Tools: Detecting Targeted Socialbots // IEEE Internet Computing. 2014. Vol. 18, № 5. P. 1119.

101. Pattison P. Algebraic Models for Social Networks. Cambridge University Press, 1993. 336 p.

102. Pennacchiotti M., Popescu A.-M. Democrats, Republicans and Starbucks Af-ficionados: User Classification in Twitter // Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Diego, California, USA: ACM, 2011. P. 430-438.

103. Political Polarization on Twitter / M. Conover [et al.] // Proc. 5th International AAAI Conference on Weblogs and Social Media (ICWSM). North America. 2011. P. 89-96.

104. Raghavan U. N., Albert R., Kumara S. Near linear time algorithm to detect community structures in large-scale networks // Phys. Rev. E. 2007. Sept. Vol. 76, issue 3, № 036106. P. 1-11.

105. Reverse Engineering Socialbot Infiltration Strategies in Twitter / C. Freitas [et al.] // Proceedings of the 2015 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining 2015. Paris, France: ACM, 2015. P. 25-32.

106. Rosvall M., Bergstrom C. T. Maps of random walks on complex networks reveal community structure // Proceedings of the National Academy of Sciences. 2008. Vol. 105, № 4. P. 1118-1123.

107. Rousseeuw P. J. Silhouettes: A graphical aid to the interpretation and validation of cluster analysis // Journal of Computational and Applied Mathematics. 1987. Vol. 20. P. 53-65.

108. Ruan Y., Fuhry D., Parthasarathy S. Efficient Community Detection in Large Networks Using Content and Links // Proceedings of the 22Nd International Conference on World Wide Web. Rio de Janeiro, Brazil: ACM, 2013. P. 1089-1098.

109. SCAN: A Structural Clustering Algorithm for Networks / X. Xu [et al.] // Proceedings of the 13th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Jose, California, USA: ACM, 2007. P. 824833.

110. Schaeffer S. E. Graph clustering // Computer Science Review. 2007. Vol. 1, № 1. P. 27-64.

111. Scott J.Social network analysis: A handbook. 2nd. London: SAGE, 2000. 224 p.

112. Shkapenyuk V., Suel T. Design and Implementation of a High-Performance Distributed Web Crawler // Proceedings of the 18th International Conference on Data Engineering. Washington, DC, USA: IEEE Computer Society, 2002. P. 357-369.

113. Social Spammer Detection with Sentiment Information / X. Hu [et al.] // 2014 IEEE International Conference on Data Mining. 12/2014. P. 180-189.

114. Stein B., Eissen S. M. zu, Wißbrock F. On Cluster Validity and the Information Need of Users // Proc. Artificial Intelligence and Applications. 2003. P. 216221.

115. Stein T., Chen E., Mangla K. Facebook Immune System // Proceedings of the 4th Workshop on Social Network Systems. Salzburg, Austria: ACM, 2011. P. 1-8.

116. Structural Link Analysis from User Profiles and Friends Networks: A Feature Construction Approach / W. H. Hsu [et al.] // Proc. of the First International AAAI Conference on Weblogs and Social Media (ICWSM). 2007. P. 75-80.

117. The Anatomy of the Facebook Social Graph / J. Ugander [et al.] // CoRR. 2011. Vol. abs/1111.4503. P. 1-17.

118. Towards Social User Profiling: Unified and Discriminative Influence Model for Inferring Home Locations / R. Li [et al.] // Proceedings of the 18th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. Beijing, China: ACM, 2012. P. 1023-1031.

119. Truthy: Mapping the Spread of Astroturf in Microblog Streams / J. Ratkiewicz [et al.] // Proceedings of the 20th International Conference Companion on World Wide Web. Hyderabad, India: ACM, 2011. P. 249-252.

120. Uncovering Social Network Sybils in the Wild / Z. Yang [et al.] // Proceedings of the 2011 ACM SIGCOMM Conference on Internet Measurement Conference. Berlin, Germany: ACM, 2011. P. 259-268.

121. Uncovering the overlapping community structure of complex networks in nature and society / G. Palla [et al.] // Nature. 2005. Vol. 435, № 7043. P. 814818.

122. Unique in the Crowd: The privacy bounds of human mobility / Y.-A. Montjoye [et al.] // Scientific Reports. 2013. Vol. 3, № 1376. P. 1-5.

123. Wang A. H. Detecting Spam Bots in Online Social Networking Sites: A Machine Learning Approach // Proceedings of 24th Annual Data and Applications Security and Privacy Working Conference. Berlin, Heidelberg: Springer Berlin Heidelberg, 2010. P. 335-342.

124. Wang J., Paschalidis I. C. Botnet Detection using Social Graph Analysis // CoRR. 2015. Vol. abs/1503.02337. P. 1-7.

125. Wasserman S., Faust K. Social Network Analysis: Methods and Applications (Structural Analysis in the Social Sciences). Cambridge University Press, 1994. 857 p.

126. Who is Tweeting on Twitter: Human, Bot, or Cyborg? / Z. Chu [et al.] // Proceedings of the 26th Annual Computer Security Applications Conference. Austin, Texas, USA: ACM, 2010. P. 21-30.

127. Writer identification by writer's invariants / A. Bensefia [et al.] // Frontiers in Handwriting Recognition, 2002. Proceedings. Eighth International Workshop on. IEEE. 2002. P. 274-279.

128. Xie J., Kelley S., Szymanski B. K. Overlapping Community Detection in Networks: The State-of-the-art and Comparative Study // ACM Comput. Surv. 2013. Vol. 45, 4, article 43. P. 1-35.

129. Xie J., Szymanski B. K., Liu X. SLPA: Uncovering Overlapping Communities in Social Networks via a Speaker-Listener Interaction Dynamic Process // Proceedings of the 2011 IEEE 11th International Conference on Data Mining Workshops. Washington, DC, USA: IEEE Computer Society, 2011. P. 344349.

130. Yang C., Harkreader R. C., Gu G. Die Free or Live Hard? Empirical Evaluation and New Design for Fighting Evolving Twitter Spammers // Recent Advances in Intrusion Detection: 14th International Symposium, RAID 2011, Menlo Park, CA, USA, September 20-21, 2011. Proceedings. Berlin, Heidelberg: Springer Berlin Heidelberg, 2011. P. 318-337.

131. Yang J., Leskovec J. Community-Affiliation Graph Model for Overlapping Network Community Detection // 12th IEEE International Conference on Data Mining, ICDM 2012, Brussels, Belgium, December 10-13, 2012. 2012. P. 1170-1175.

132. Yang J., Leskovec J.Defining and evaluating network communities based on ground-truth // Knowledge and Information Systems. 2015. Vol. 42, № 1. P. 181-213.

133. Yang J., Leskovec J.Overlapping Community Detection at Scale: A Nonnegative Matrix Factorization Approach // Proceedings of the Sixth ACM International Conference on Web Search and Data Mining. Rome, Italy: ACM, 2013. P. 587-596.

134. Yang J., McAuley J. J., Leskovec J. Community Detection in Networks with Node Attributes // 2013 IEEE 13th international conference on Data Mining (ICDM). IEEE. 2013. P. 1151-1156.

135. You Are Who You Know: Inferring User Profiles in Online Social Networks / A. Mislove [et al.] // Proceedings of the Third ACM International Conference on Web Search and Data Mining. New York, New York, USA: ACM, 2010. P. 251-260.

136. Zachary W. An Information Flow Model for Conflict and Fission in Small Groups // J. of Anthropological Research. 1977. Vol. 33. P. 452-473.

137. Zafarani R., Liu H. 10 Bits of Surprise: Detecting Malicious Users with Minimum Information // Proceedings of the 24th ACM International on Conference on Information and Knowledge Management. Melbourne, Australia: ACM, 2015. P. 423-431.

138. Zaki M. J., Meira W. J.Data Mining and Analysis: Fundamental Concepts and Algorithms. Cambridge University Press, 2014. 562 p.

139. Zangerle E., Specht G. "Sorry, I Was Hacked": A Classification of Compromised Twitter Accounts // Proceedings of the 29th Annual ACM Symposium on Applied Computing. Gyeongju, Republic of Korea: ACM, 2014. P. 587593.

140. Zhao K., Zhang S.-W., Pan Q. Fuzzy analysis for overlapping community structure of complex network // Control and Decision Conference. IEEE Computer Society, 2010. P. 3976-3981.

141. Zhou Y., Cheng H., Yu J. X. Graph Clustering Based on Structural/Attribute Similarities // Proc. VLDB Endow. 2009. Vol. 2, № 1. P. 718-729.

142. 1gram.ru — биржа обмена лайками и подписчиками в Инстаграм. URL: https://1gram.ru/ (дата обр. 09.08.2016).

143. Advertise - YouTube. URL: https://www.youtube.com/yt/advertise/ (дата обр. 08.08.2016).

144. AP Twitter Account Hacked in Market-Moving Attack - Bloomberg. URL: http: // www. bloomberg. com/news /articles /2013 - 04 - 23 / dow - jones - drops -recovers-after-false-report-on-ap-twitter-page (дата обр. 08.08.2016).

145. Brand Analytics - источники. URL: https://br-analytics.ru/statistics/ (дата обр. 31.08.2016).

146. Brand Analytics - отстема мониторинга социальных медиа и СМИ. URL: https://br-analytics.ru/ (дата обр. 04.08.2016).

147. che-love-chek - Профиль. URL: http://che-love-chek.livejournal.com/profile (дата обр. 15.03.2013).

148

149

150

151

152

153

154

155

156

157

158

159

160

161

Data and Research on Digital for Business Professionals | eMarketer. URL: https://www.emarketer.com/ (дата обр. 31.08.2016).

Datasets • gephi/gephi Wiki. URL: https://github.com/gephi/gephi/wiki/ Datasets (дата обр. 11.08.2016).

Definition of social network in Oxford Dictionaries (British & World English) / Oxford Dictionaries. URL: http: //oxforddictionaries. com/definition/english/ social%5C%2Bnetwork (дата обр. 26.03.2013).

DOJ indicts man who blasted false stock info on Twitter then traded on it | Ars Technica. URL: http://arstechnica.com/tech-policy/2015/11/scottish-man-indicted-for-twitter-based-stock-fraud/ (дата обр. 08.08.2016).

Elasticsearch | Elastic. URL: https://www.elastic.co/products/elasticsearch (дата обр. 16.08.2015).

Firefox UserAgent Switcher list / Tech Patterns. URL: http://techpatterns.com/ forums/about304.html (дата обр. 21.03.2013).

forumOk.com | биржа постинга в социальных сервисах рунета. URL: http: //forumok.com/ (дата обр. 09.08.2016).

Global Social Media Statistics Summary 2016. URL: http://www.smartinsights. com/social-media- marketing/social-media- strategy/new- global-social-media-research/ (дата обр. 31.08.2016).

Imagine Discovering That Your Teaching Assistant Really Is a Robot - WSJ. URL: http: //www. wsj. com/articles/if-your- teacher- sounds - like - a- robot-you-might-be-on-to-something-1462546621 (дата обр. 12.05.2016).

Inside Chinese 'Click Farms' | Kotaku Australia. URL: https://www.kotaku. com.au/2017/05/inside-chinese-click-farms/ (дата обр. 29.08.2017).

Introduction to Redis. URL: http://redis.io/topics/introduction (дата обр. 10.04.2013).

KONECT - The Koblenz Network Collection. URL: http://konect.uni-koblenz. de/ (дата обр. 11.08.2016).

Krebs V. unpublished. URL: http://www.orgnet.com/.

Leskovec J., Krevl A. SNAP Datasets: Stanford Large Network Dataset Collection. 06.2014. http://snap.stanford.edu/data.

162. Look at This Massive Click Fraud Farm that Was Just Busted In Thailand -Motherboard. URL: https://motherboard.vice.com/en_us/article/43yqdd/look-at-this-massive-click-fraud-farm-that-was-just-busted-in-thailand (дата обр. 29.08.2017).

163. Network data. URL: http://www-personal.umich.edu/~mejn/netdata/ (дата обр. 11.08.2016).

164. Overview / Tor Project. URL: https://www.torproject.org/about/overview.html. en (дата обр. 02.02.2013).

165. PostgreSQL: The world's most advanced open source database. URL: http: //www.postgresql.org/ (дата обр. 11.04.2013).

166. Russian Twitter political protests 'swamped by spam' - BBC News. URL: http: //www.bbc.com/news/technology-16108876 (дата обр. 07.08.2016).

167. Social Media Fraud Spikes, Study Finds. URL: https://www.darkreading.com/ cloud/ social-media - fraud - spikes - study - finds-/d/d- id /1326805 (дата обр. 29.08.2017).

168. Social Network Analysis Reveals Full Scale of Kremlin's Twitter Bot Campaign • Global Voices. URL: https : / / globalvoices . org / 2015 / 04 / 02 / analyzing-kremlin-twitter-bots/ (дата обр. 07.08.2016).

169. UCI Network Data Repository. URL: https://networkdata.ics.uci.edu/index.php (дата обр. 11.08.2016).

170. Wobot. URL: http://wobot.ru/ (дата обр. 04.08.2016).

171. YouScan - Система мониторинга социальных медиа и социальных сетей. URL: https://youscan.io/ (дата обр. 04.08.2016).

172. Аккаунты_19_09_все_смены. URL: https : / / docs . google . com / file / d / 0ByghjF4C91znSGNabkRnZS1tS0k (дата обр. 24.04.2016).

173. Безумие кремлевских троллей. URL: http://www.svoboda.org/aZ26913247. html (дата обр. 08.08.2016).

174. В Москве установили автомат по продаже лайков и подписчиков в инста-граме — Meduza. URL: https://meduza.io/shapito/2017/06/06/v-moskve-ustanovili - avtomat - po - prodazhe - laykov - i - podpischikov - v - instagrame (дата обр. 29.08.2017).

175. Возраст и пол авторов социальных сетей. URL: https://br-analytics.ru/ statistics/author (дата обр. 31.08.2016).

176. ВЦИОМ - Пресс-выпуск. URL: http://wciom.ru/index.php?id=236&uid= 115679 (дата обр. 31.08.2016).

177. Зачем Следственному комитету России искусственный интеллект - BBC Русская служба. URL: http://www.bbc.com/russian/russia/2015/12/151224_ smj_sledcom_integrum (дата обр. 24.04.2016).

178. Как власти читают ваши блоги: расследование Forbes. URL: http://www. forbes.ru/sobytiya/vlast/92590-kak-vlasti-chitayut-vashi-blogi-rassledovanie-forbes (дата обр. 20.04.2016).

179. Как провести мониторинг социальных медиа: методичка. URL: http://www. cossa.ru/149/117540/ (дата обр. 15.04.2016).

180. Минобороны России займется мониторингом СМИ и соцсетей: Вооруженные силы: Силовые структуры: Lenta.ru. URL: https://lenta.ru/news/2015/ 01/28/monitor/ (дата обр. 22.04.2016).

181. Мониторинг социальных медиа в Москве, сервис мониторинга соцмедиа. URL: http://iqbuzz.pro/ (дата обр. 04.08.2016).

182. На основе открытых источников j Еженедельник «Военно-промышленный курьер». URL: http://vpk-news.ru/articles/7324 (дата обр. 22.04.2016).

183. Накрутка подписчиков, лайков в ВКонтакте, Facebook, Instagram, Twitter, Youtube. URL: https://vktarget.ru/ (дата обр. 09.08.2016).

184. Национальный центр управления обороной РФ. URL: http : / / sneg5 . com / obshchestvo / armiya / centr - upravleniya - oboronoy - rf. html (дата обр. 20.04.2018).

185. Правила LiveJournal для роботов / LiveJournal. URL: http://www.livejournal. com/bots/ (дата обр. 07.02.2013).

186. Разведка ботом. URL: http : / / kommersant. ru / doc / 2009256 (дата обр. 20.04.2016).

187. Российские системы мониторинга социальных сетей. URL: http://www. cossa.ru/149/17590/ (дата обр. 15.04.2016).

188. СВР: миллион долларов - на блоги. URL: http://www.svoboda.org/content/ article/24689413.html (дата обр. 20.04.2016).

189. Управление репутацией: автоматизированный и ручной мониторинг репутации / Лайкни. URL: http://www.likeni.ru/analytics/upravlenie-reputaciej-v-seti-avtomatizirovannij-i-ruchnoj-monitoring/ (дата обр. 15.03.2013).

190. Уровень доверия россиян к теленовостям упал в два раза за шесть лет. URL: http://www.interfax.ru/russia/485226 (дата обр. 21.04.2016).

191. ФБР готовит программу для мониторинга социальных сетей / BBC Russian. URL: http://www.bbc. co. uk/russian/international/2012/01/120127_ fbi_social_networks.shtml (дата обр. 15.03.2013).

Публикации автора по теме диссертации

В рецензируемых изданиях из перечня ВАК Минобрнауки РФ:

1. Ключарёв П. Г., Чесноков В. О. Исследование спектральных свойств социального графа сети LiveJournal // Наука и образование. Электронное научно-техническое издание. 2013. № 9. С. 391—400. (0,69 п.л./0,41 п.л.)

2. Чесноков В. О., Ключарёв П. Г. Выделение сообществ в социальных графах по множеству признаков с частичной информацией // Наука и образование. Электронное научно-техническое издание. 2015. № 9. С. 188—199. (0,85 п.л./0,72 п.л.)

3. Чесноков В. О. Предсказание атрибутов профиля пользователя социальной сети путем анализа сообществ графа его ближайшего окружения // Вестник МГТУ им. Н.Э. Баумана. Сер. Приборостроение. 2017. № 2. С. 66—76. (0,91 п.л.)

4. Чесноков В. О. Применение алгоритма выделения сообществ в информационном противоборстве в социальных сетях // Вопросы кибербезопасно-сти. 2017. № 1(19). С. 37—44. (0,61 п.л.)

5. Чесноков В. О., Ключарёв П. Г. Современные методы выделения сообществ в социальных сетях // Наука и образование. Электронное научно-техническое издание. 2017. № 4. С. 137—152. (1,16 п.л./1,01 п.л.)

В журналах, входящих в базу цитирования Scopus:

6. Chesnokov V. Overlapping Community Detection in Social Networks with Node Attributes by Neighborhood Influence // Models, Algorithms, and Technologies for Network Analysis: NET 2016, Nizhny Novgorod, Russia, May 2016. Cham: Springer International Publishing, 2017. P. 187-203. (1,53 п.л.)

7. Chesnokov V., Klyucharev P. Deanonymizing Users in Social Networking Services: an Ego-Network Analysis Approach // CEUR Workshop Proceedings. Selected Papers of the VIII All-Russian Scientific and Technical Conference on Secure Information Technologies (BIT 2017). Vol. 2081. 2017. P. 40-44. (0,51 п.л./0,42 п.л.)

В других изданиях:

8. Чесноков В. О. Выделение сообществ в графах по множеству признаков с частичной информацией // «Безопасные информационные технологии»: Сборник трудов Шестой Всероссийской научно-технической конференции. М.: Изд-во Научно-учебный комплекс «Информатика и системы управления», 2015. С. 18—21. (0,23 п.л.)

9. Чесноков В. О. Выделение пересекающихся сообществ в социальных графах по мажоритарному признаку соседей // «Ломоносов 2016»: XXIII Международная научная конференция студентов, аспирантов и молодых ученых; секция «Вычислительная математика и кибернетика». М.: Издательский отдел факультета ВМиК МГУ; МАКС Пресс, 2016. С. 49—51. (0,24 п.л.)

10. Чесноков В. О. Обнаружение виртуальных пользователей в онлайновых социальных сетях путем анализа графов ближайшего окружения // «Безопасные информационные технологии»: Сборник трудов Седьмой всероссийской научно-технической конференции. М.: НУК «Информатика и системы управления», 2016. С. 299—302. (0,25 п.л.)

11. Чесноков В. О. Деанонимизация пользователей онлайновых социальных сетей путем анализа графов ближайшего окружения // Безопасные информационные технологии. Сборник трудов Восьмой всероссийской научно-технической конференции. М.: МГТУ им. Н.Э. Баумана, 2017. С. 513—516. (0,25 п.л.)

12. Чесноков В. О. Программное обеспечение сбора и анализа графов ближайшего окружения из онлайновых социальных сетей // Машиностроение и компьютерные технологии. 2018. № 8. С. 34—44. (0,74 п.л.)

10

15

20

25

Приложение

П.1. Исходный код разработанного метода сбора данных из онлайновых

социальных сетей

П.1.1. worker.py

#!/usr/bin/python

# —*— coding: utf-8 —*—

import urllib2 import socks import sockshandler

import sys

import time

import telnetlib

import ConfigParser

import redis

import json

import errno

import random # for ua

from datetime import datetime from datetime import timedelta import logging import threading

import signal import traceback import os

import psycopg2

# local

from parsers . vk_friends import * from parsers.vk_members import * from parsers .lj_friends import *

0

5

# params

config = ConfigParser.RawConfigParser()

40

config.read(sys.argv[1])

max_attempts = config.getint('general', 'max_attempts') change_ip_attempts = config.getint('general', 'change_ip_attempts') reconnect_timeout = config.getint('general', 'reconnect_timeout') url_timeout = config.getint('general', 'url_timeout') threads_count = config.getint('general', 'threads_count') log_level = config.get('general', 'log_level')

proxy = config.get('network', 'proxy') user_agent = config.get('network', 'user_agent')

45 telnet_port = config.getint('telnet', 'port')

redis_host = config.get('redis', 'host') redis_port = config.getint('redis', 'port') redis_password = config.get('redis', 'password') 50 redis_list = config.get('redis', 'list ')

redis_child_works_list = config.get('redis', 'child_works_list') redis_error_list = config.get('redis', 'error_list') redis_current_list = config.get('redis', 'current_list')

55 sql_users_table = config.get('sql','users_table') sql_edges_table = config.get('sql','edges_table') sql_username = config.get('sql','username') sql_dbname = config.get('sql','dbname')

sql_host = config.get('sql','host')

60 sql_password = config.get('sql','password')

65

sql_tables = dict(config.items('additional_tables'))

logging.basicConfig(stream=sys.stdout, level=getattr(logging, ^ log_level), format="%(threadName)-11s %(message)s")

opener = urllib2.build_opener(sockshandler.SocksiPyHandler(socks.^ PROXY_TYPE_SOCKS5, proxy.split( ': ') [0], int(proxy.split( ': ') [1])^ , True))

urllib2.install_opener(opener)

user_agents = json.loads(open(user_agent).read())

75

80

85

90

95

100

rserver = redis.Redis(host=redis_host, port=redis_port, db=0, ^

password=redis_password) conn_string = "host="+sql_host + " dbname="+sql_dbname+" user="+<

sql_username+ " password="+sql_password conn = psycopg2.connect(conn_string) conn.autocommit = True reconnect_lock = threading.RLock() reconnecting = False

def install_thread_excepthook(excepthook=None): def log_uncaught_exceptions(ex_cls, ex, tb):

logging.critical(' '.join(traceback.format_tb(tb))) logging.critical('{0}: {1}'.format(ex_cls, ex)) os._exit(1)

sys.excepthook = excepthook or log_uncaught_exceptions run_old = threading.Thread.run def run(*args, **kwargs): try :

run_old(*args, **kwargs) except :

sys.excepthook(* sys.exc_info()) threading.Thread.run = run

install_thread_excepthook ( )

def signal_handler(signal, frame): global working logging.debug('Exiting. .. ' ) working = False entity_count = 0 total_len = 0 total_seconds = 0 total_requests = 0 total_speed = 0

for t in thread_list: t. join ()

entity_count += t.entity_count

115

120

125

130

135

140

total_len += t.total_len

total_seconds += t.total_time.total_seconds() total_requests += t.total_requests if t.total_time.total_seconds():

total_speed += t.total_len / t.total_time.total_seconds()

total_working_time = datetime.now() — start_time if total_requests == 0: total_requests = —1

conn.close()

print "total_entities:\t", entity_count, \ "\ntreads_count:\t", threads_count, \ "\ntotal Mbytes:\t", total_len * 1.0 / 1024 / 1024, \ "\naverage_time:\t", total_seconds / total_requests, "seconds", ^

\

"\ngross speed:\t", total_speed / 1024, "Kbytes/s", \ "\naverage speed:\t", total_speed / threads_count / 1024, "^

Kbytes /s " , \ "\ntotal time:\t", total_working_time, \

"\nrequests per minute:\t", total_requests / total_working_time^ .total_seconds() * 60 os._exit(0)

signal.signal(signal.SIGINT, signal_handler) logging.debug("Starting.. . " )

class WorkerThread(threading.Thread)

def _init_(self):

threading.Thread._init_(self)

self . daemon = True

self.task_str = ""

self . task = None

self.total_time = timedelta()

self.total_requests = 0

self . total_len = 0

self.entity_count = 0

155

160

165

170

175

self.cur = conn.cursor()

def run(self): while working: try :

logging.debug("Fetching next task...")

self.task_str = rserver.brpoplpush(redis_list, ^

redis_current_list, 1) if (self.task_str is None) or (len(self.task_str) == 0): ^ continue

self.task = json.loads(self.task_str) logging.debug(self.task)

parser = self.get_parser(self.task['type']) if parser is not None:

response = self.get_data(parser.get_url(), parser.^

get_url_data()) if response is not None :

if self.parse(response, parser):

rserver.lrem(redis_current_list, self.task_str) # ^

reversed num and value logging.info("Done: " + self.task_str) continue

logging.error("Pushing to error_list " + self.task_str) rserver.lpush(redis_error_list, self.task_str) rserver.lrem(redis_current_list, self.task_str) except :

sys.excepthook(* sys.exc_info())

def get_parser(self, class_name): if class_name in globals():

parser = globals()[class_name](self.task) return parser else:

logging.error("No such parser: " + class_name + " processing ^

" + self.task_str) return None

def reconnect(self): global reconnecting reconnect_lock.acquire() if reconnecting:

190

195

200

205

210

reconnect_lock.release() return reconnecting = True reconnect_lock.release()

logging.critical("Changing proxy (" + str(datetime.now()) + ") ^

"+ str(telnet_port)) tn = telnetlib.Telnet('127.0.0.1', telnet_port) tn.read_until("Escape character is 'A]'.", 2) tn.write("AUTHENTICATE\r\n") tn.read_until("25 0 OK", 2) tn.write("signal NEWNYM\r\n") tn.read_until("25 0 OK", 2) tn.write("quit\r\n") tn.close()

time.sleep(reconnect_timeout) reconnecting = False

def get_data(self, url, url_data): attempts = 0

while attempts < max_attempts:

opener.addheaders = [('User-agent', user_agents[random.^

randint (0 , len ( user_agents ) — 1)][' — useragent ']), (' Accepts

' , ' * / * ' ) ] attempts += 1 curtime = datetime.now() try :

response = urllib2.urlopen(url, url_data, timeout=^ url_timeout) except urllib2.HTTPError, e:

logging.error("HTTPError: " + str(e.reason) + " " + str(e.^

code) + " processing " + self.task_str) if (e.code == 504) or (e.code == 502) or (e.code == 503) or^^ (e.code == 403): self.reconnect() continue

if e.code == 404: break

except urllib2.URLError, e: if e.reason == "Forbidden":

225

230

235

240

245

logging.error("forbidden") self.reconnect() continue

elif hasattr(e.reason, 'errno'):

if (e.reason.errno == errno.ETIMEDOUT) or (e.reason.errno^1 == errno.ECONNRESET) \

or (e.reason.errno == errno.ENOEXEC) or (e.reason.s errno == -2): continue else:

logging.error("URLError: " + str(e.reason) + " s processing " + self.task_str)

else:

logging.error("URLError: " + str(e.reason) + " processings

" + self.task_str) break except Exception, e: #raise e

if attempts > change_ip_attempts: self.reconnect() else:

self.total_time += datetime.now() — curtime self.total_requests += 1 return response return None

def parse(self, response, parser): try :

full_text = response.read().decode('utf — 8', "ignore") except Exception:

logging.error("Error parsing text—" + " processing " + self.s

task_str) return False

self.total_len += len(full_text) try :

parser.feed(full_text) except Exception, e:

logging.error("Error parsing data—" + " processing " + self.s

task_str + str(e)) #raise

260

265

270

275

280

285

self . reconnect () return False

data = parser.result() if data is not None :

logging.debug("Writing.. . " )

if 'next_task' in data:

rserver.lpush(redis_list, json.dumps(data['next_task']))

if 'friends ' in data :

if not len(data['friends']):

return True new_names = self.write_friends(data)

if self.task['depth']:

self.create_child_tasks(data['child_tasks'], new_names)

elif 'lists' in data:

for lst in data['lists']:

new_names = self . update_list (lst [' type '], lst [' key'], lsts

['name'], lst['members']) self.create_child_tasks(lst.get('child_tasks', None), s new_names)

#else:

# logging.error("Bad data from parser" + " processing " + s

self.task_str)

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.