如何使用oauth2为网站构建Python爬虫程序

2024-06-16 12:28:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我是网络编程新手。我想用Python在Foursquare中构建一个爬行器来爬行社交图。 我使用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中获取代码,然后更新程序中的代码,然后再次运行它。我想也许有一种方法可以把代码编码到我当前的程序中,并使其自动化。在

任何指示或示例代码都是感激的。在


Tags: 方法key代码程序网络reauthurl
3条回答

您应该查看python-oauth2模块。这似乎是最稳定的。在

特别是,this blog post对如何使用Python轻松地完成Oauth有一个非常好的总结。示例代码使用foursquareAPI,因此我将首先检查它。在

我最近不得不让oauth使用Dropbox,and wrote this module包含进行oauth交换的必要步骤。在

对于我的系统,我能想到的最简单的事情就是pickleOauth客户机。我的博客包刚刚反序列化了pickled客户端并使用以下函数请求了终结点:

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

只需确保您的工作人员拥有此客户机对象,并且您应该准备就绪:-)

首先让你的应用通过oauth2认证。 这是一个如何使用oauth进行twitter身份验证的示例。http://popdevelop.com/2010/07/an-example-on-how-to-use-oauth-and-python-to-connect-to-twitter/

类似地,您可以在https://code.google.com找到更多示例

然后可以使用beauthoulsoup或lxml进行html解析。您可以从页面源中提取相关数据,请求完成后将获得这些数据。在

美化组文档-http://www.crummy.com/software/BeautifulSoup/

要下载图片、视频等,你可以使用开场白。在http://docs.python.org/library/urllib2.html上阅读有关开场白的更多信息

你不必每次都这么做。他们会给你一个token,这对X小时/天都有效。最终你需要验证403

相关问题 更多 >