首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中使用新的Twitter 1.1搜索?

如何在Python中使用新的Twitter 1.1搜索?
EN

Stack Overflow用户
提问于 2013-03-09 15:22:18
回答 2查看 3.9K关注 0票数 3

大家都知道,Twitter正在向新的API (1.1)过渡,而旧的API (1.0)正面临停电和最终终止。

我正在使用Python/姜戈进行一个小组项目,而且似乎没有一个大型Python使用API1.1。我可以直接与API接口,而无需使用Python接口,但由于需要使用OAuth登录名,我在这方面有问题。

所以我有两个问题。

  1. 是否有支持Twitter 1.1的Python库?
  2. 如果我们像下面的URL那样直接与新的API接口,那么考虑到我们需要使用OAuth登录,我们如何使它工作呢? 网址:https://api.twitter.com/1.1/search/tweets.json?q=#freebandnames&since_id=24012619984051000&max_id=250126199840518145&result_type=mixed&count=4
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-22 03:56:29

Twitter模块可以工作。您可以使用它请求Twitter进行身份验证,转到Twitter网站,输入用户和密码,并在计算机上保存令牌。

我使用这段代码搜索Twitter状态(实时搜索与标准Twitter搜索略有不同)。

代码:

代码语言:javascript
复制
# -*- coding: utf-8 -*-

import os
import twitter
import json
import csv

from twitter.oauth import write_token_file, read_token_file
from twitter.oauth_dance import oauth_dance

def login():
    # Go to http://twitter.com/apps/new to create an app and get these items.
    # See also http://dev.twitter.com/pages/oauth_single_token.

    APP_NAME = 'xxx'
    CONSUMER_KEY = 'xxx'
    CONSUMER_SECRET = 'xxx'
    TOKEN_FILE = '/token.txt'

    try:
        (oauth_token, oauth_token_secret) = read_token_file(TOKEN_FILE)
    except IOError, e:
        (oauth_token, oauth_token_secret) = oauth_dance(APP_NAME, CONSUMER_KEY,
                CONSUMER_SECRET)
        print e.errno
        print e

        if not os.path.isdir('out'):
            os.mkdir('out')

        write_token_file(TOKEN_FILE, oauth_token, oauth_token_secret)

    auth=twitter.oauth.OAuth(oauth_token, oauth_token_secret,CONSUMER_KEY, CONSUMER_SECRET)
    return twitter.TwitterStream(auth = auth, secure = True)

if __name__=="__main__":
    t = login()
    res = t.statuses.filter(track = "search text")

    res_list = []
    tweetfields = set()
    for r in res:
        if len(res_list)<100:
            print len(res_list)
            res_list.append(r)
            tweetfields = tweetfields.union(r.keys())
        else:
            break

    fname = '/results.csv'
    f = open(fname,'w')
    dw = csv.DictWriter(f,fieldnames=list(tweetfields))
    dw.writeheader()

    for r in res_list:
        dw.writerow({k:v.encode('utf8') if isinstance(v,unicode) else v for k,v in r.items()})
    f.close()

    print [result['text'] for result in res_list]
票数 5
EN

Stack Overflow用户

发布于 2013-03-09 15:42:39

如果我们按照下面的方式与新API直接接口,那么考虑到我们需要使用OAuth登录,如何使它工作呢?

代码语言:javascript
复制
>>> import twitter
>>> client = twitter.Api(username='yourusername', password='yourpassword')
>>> update = client.PostUpdate('The Twitter API is easy')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15312341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档