python - 如何使用 oauth2 为网站构建 Python 爬虫

标签 python api oauth-2.0 web-crawler foursquare

我是网络编程新手。我想构建一个爬虫,用于通过 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 中获取 CODE,然后在我的程序中更新 CODE,然后再次运行。我认为可能有一些方法可以将 CODE 编码到我当前的程序中并使其自动化。

欢迎提供任何说明或示例代码。

最佳答案

您应该查看 python-oauth2模块。它似乎是目前最稳定的东西。

特别是,this blog post对如何使用 Python 轻松地进行 Oauth 有很好的了解。示例代码使用了 Foursquare API,所以我会先检查一下。

我最近不得不让 oauth 与 Dropbox 一起工作,and wrote this module包含进行 oauth 交换的必要步骤。

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

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

只需确保您的工作人员拥有此客户端对象,您就可以开始了:-)

关于python - 如何使用 oauth2 为网站构建 Python 爬虫,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038690/

相关文章:

python - 如何用列名填充数据框的真实值?

qt - QtWebEngine 依赖应用程序的静态构建

spring-boot - EnableAuthorizationServer 2.4.0 迁移

authentication - Google OAuth 2 授权 - 错误 : redirect_uri_mismatch

python - 无法打开prover9/Mace4

c# - 如何在 DQN(深度 Q 网络)中分配状态?

python - 从字典列表中创建嵌套的 json 对象

node.js - 如何在 Promise.all 中将 URL 中的数组作为参数传递

javascript - node.js 中 post 请求的过滤体

php - 推特 API : Get Followers +99