Как создать сканер Python для сайтов, использующих oauth2 - PullRequest
4 голосов
/ 27 января 2012

Я новичок в веб-программировании.Я хочу создать сканер для сканирования социального графа в Foursquare от Python.У меня есть управляемый вручную сканер с помощью библиотеки apiv2.Основной метод выглядит следующим образом:

def main():
    CODE = "******"
    url = "https://foursquare.com/oauth2/authenticate?client_id=****&response_type=code&redirect_uri=****"
    key = "***"
    secret = "****"
    re_uri = "***"

    auth = apiv2.FSAuthenticator(key, secret, re_uri)
    auth.set_token(code)    
    finder = apiv2.UserFinder(auth)        

    #DO SOME REQUIRES By USING THE FINDER
    finder.finde(ANY_USER_ID).mayorships()
    bla bla bla

Проблема в том, что в настоящее время я должен набрать URL-адрес в своем браузере и выбрать код из URL-адреса перенаправления, а затем обновить код в моей программе,и запустите его снова.Я думаю, что есть какой-то способ, которым я могу кодировать CODE, принимая прогресс в мою текущую программу и сделать ее автоматической.

Любая инструкция или пример кода приветствуются.

Ответы [ 3 ]

1 голос
/ 16 марта 2012

Сначала проверьте подлинность вашего приложения с помощью oauth2.Это пример того, как использовать oauth для аутентификации в твиттере.http://popdevelop.com/2010/07/an-example-on-how-to-use-oauth-and-python-to-connect-to-twitter/

Аналогично, вы можете найти больше примеров, в https://code.google.com

Затем вы можете использовать BeautifulSoup или lxml для анализа html.Вы можете извлечь соответствующие данные из источника страницы, который вы получите после завершения запроса.

Документация BeautifulSoup - http://www.crummy.com/software/BeautifulSoup/

Для загрузки изображений, видео и т. Д. Вы можете использовать открыватели.Подробнее об открывашках на http://docs.python.org/library/urllib2.html

1 голос
/ 27 января 2012

Вы должны проверить модуль python-oauth2 .Кажется, это самая стабильная вещь из всех.

В частности, в этом блоге очень хорошо рассказывается, как легко выполнить Oauth с Python.В примере кода используется API Foursquare, поэтому сначала я это проверил.

Мне недавно пришлось получить oauth, работающий с Dropbox, и я написал этот модуль , содержащий необходимые шаги для обмена oauth.

Для моей системы самой простой вещью, о которой я мог подумать, был pickle клиент Oauth.Мой пакет блогов десериализовал выбранный клиент и запросил конечные точки с помощью следующей функции:

get = lambda x: client.request(x, 'GET')[1]

Просто убедитесь, что у ваших работников есть этот клиентский объект, и вы должны хорошо идти: -)

0 голосов
/ 28 января 2012

Вам не нужно делать это каждый раз. Они дадут вам token, что хорошо для X часов / день. В конце концов вы получите 403 http-кода и вам придется повторно пройти аутентификацию

...