Сканирование социальной сети в Python - PullRequest
1 голос
/ 18 сентября 2010

Я хотел бы написать скрипт на python для сканирования сайта социальной сети.Целью сценария должно быть получение части социального графа (дружеские отношения).

Веб-сайт не предоставляет API.

Проблема заключается в следующем: как я могу сканировать веб-сайт на python, который притворяется, что он входит в сеанс входа для доступа к страницам контактов (например, http://www.anobii.com/junemiller/friends)?Ну, у меня есть логин \ пароль, и я бы использовал его для входа и получения, но я не знаю, как использовать его для входа в систему через python, чтобы установить сеанс для доступа к страницам.Любое предложение о модулях или методах Python?

Спасибо, Jacopo

Ответы [ 3 ]

2 голосов
/ 19 сентября 2010

Вы также можете использовать Scrapy , который уже обрабатывает файлы cookie и веб-сессии.

Пример официальной регистрации в официальной документации: http://doc.scrapy.org/en/stable/topics/request-response.html?highlight=request#using-formrequest-from-response-to-simulate-a-user-login

Scrapy реализуется с использованием Асинхронный ввод-вывод , поэтому он должен быть быстрее, чем Mechanize или Twill.

2 голосов
/ 18 сентября 2010

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

Если нет API, и вам разрешено сканировать систему таким образом, изучите такие инструменты, как mechanize или twill , чтобы имитировать поведение браузера / cookie / сеанса и предоставить соответствующую выскабливание.

Кроме того, вы можете реализовать это самостоятельно, используя lxml.html , urllib2 , cookielib и т. Д.

0 голосов
/ 18 сентября 2010

Вы должны исследовать Механизировать .Из документации:

Программный просмотр веб-страниц с отслеживанием состояния в Python, после Perl-модуля Энди Лестера WWW :: Mechanize.

Поочередно вы можете свернуть свои собственные, используя urllib2 и другие.встроенные модули Python.

Как сказал @Ivo , проверьте, есть ли на сайте API, чтобы сделать это для вас в первую очередь.Например, в Facebook есть Graph API, который делает в значительной степени то, что вы описали.

...