扩展现有Python模块的最佳实践是什么 - 在这种情况下,我想python-twitter通过向基本API类添加新方法来扩展包.
我看过了tweepy,我也喜欢这样; 我发现我python-twitter更容易理解并扩展我想要的功能.
我已经编写了方法 - 我正在试图找出将Pythonic和破坏性最小的方法添加到python-twitter包模块中,而不是改变这个模块的核心.
我正在使用python 3.6作为anaconda,我试图安装python-twitter包,但没有与conda管理器兼容的包.如何在conda管理器外下载软件包以便以后使用jupyter笔记本?
在我发布我的问题之前,我想告诉你,我知道很少有优秀的django套餐用于twitter和facebook集成:
所以,这是我的问题:
我想要的是?
我想要:
我的想法
如果我不得不与facebook打交道,那么我认为Django-Facebook几乎可以解答我的所有问题.但既然我也想支持twitter,我不确定应该做些什么.我只能想到:
[编辑:]其实我正在寻找以下两个问题的答案:
提前感谢您宝贵的建议.
django facebook python-twitter django-socialauth django-facebook
我最近读过"21 Recipes for Mining Twitter"这本书,他们使用的是python-twitter - Wrapper by sixohsix.
在我看来,这个库有点过时,因为它仍然区分Search API和REST API.它似乎是针对API版本1进行的,但是版本1.1 需要用于搜索Twitter的身份验证.
在sixohsix的方法中,您可以通过以下方式建立Twitter搜索:
twitter_search = twitter.Twitter(domain="search.twitter.com")
...
twitter_search.search(q="myquery")
Run Code Online (Sandbox Code Playgroud)
同时,与"常规"REST API的连接需要如下所示:
twitter.Twitter(domain='search.twitter.com', api_version='1.1',\
auth=twitter.oauth.OAuth(access_token, access_token_secret,\
consumer_key, consumer_secret))
Run Code Online (Sandbox Code Playgroud)
但我想在1.1中,搜索也需要OAuth!要么Twitter文档很混乱,要么sixohsix的库真的有点过时了.
最后一个问题:我应该轻松使用哪些Python库,最重要的是:始终如一地建立对API 1.1的搜索和其他REST调用?我看到了熊的图书馆,这似乎更具有一致性.
但也许我完全走错了道路......我想听听一些经验丰富的Python人员的建议,他们与Twitter的1.1 API进行了很多互动.谢谢.
编辑 请参阅sixohsix的Github上的#issue 109 - 该问题已修复,Search API v1.1现已包含在包装器中
我试图用Python-Twitter处理错误,例如:当我在下面通过一个返回404的Twitter帐户时,我得到以下回复...
import twitter
# API connection
api = twitter.Api(consumer_key='...',
consumer_secret='...',
access_token_key='...',
access_token_secret='...')
try:
data = api.GetUser(screen_name='repcorrinebrown')
Except Exception as err:
print(err)
Run Code Online (Sandbox Code Playgroud)
响应:
twitter.error.TwitterError: [{'code': 50, 'message': 'User not found.'}]
Run Code Online (Sandbox Code Playgroud)
如何在Except上遍历此列表
对于一个研究项目,我正在使用Python-Twitter收集推文.但是,当我们的程序在一台计算机上不间断运行一周时,我们每周只能收集大约20 MB的数据.我只在一台机器上运行这个程序,所以我们不会收集两次相同的推文.
我们的程序运行一个循环,每隔60秒调用一次getPublicTimeline().我尝试通过在公共时间轴中出现的一些用户上调用getUserTimeline()来改进这一点.然而,这始终让我被禁止每次约半小时收集推文.即使没有禁令,通过添加此代码似乎也几乎没有加速.
我知道Twitter的"白名单"允许用户每小时提交更多请求.我大约三周前申请了这个,并且从那时起就没有回复,所以我正在寻找替代方案,这将使我们的计划能够更有效地收集推文,而不会超过标准的速率限制.有没有人知道从Twitter收集公共推文的更快方法?我们希望每周大约100 MB.
谢谢.
有没有办法通过 python-twitter API 或一般的 twitter API 更改您的 twitter 密码?我环顾四周,但似乎无法找到此信息...
我正在使用来自https://github.com/sixohsix/twitter的 Python Twitter搜索API
当我尝试使用"until"参数搜索查询时,搜索不会返回任何内容
from twitter import *
t = Twitter(auth=OAuth(....))
t.search.tweets(q = 'hello', count=3, until='2012-01-01')
{u'search_metadata': {u'count': 3, u'completed_in': 0.007, u'max_id_str': u'9223372036854775807', u'since_id_str': u'0', u'refresh_url': u'?since_id=9223372036854775807&q=hello%20until%3A2012-01-01&include_entities=1', u'since_id': 0, u'query': u'hello+until%3A2012-01-01', u'max_id': 9223372036854775807L}, u'statuses': []}
Run Code Online (Sandbox Code Playgroud)
当我搜索没有"直到"时,它通常会发现推文.当我在twitter.com/search上手动搜索时
https://twitter.com/search?q=hello%20until%3A2012-01-01&src=typd
Run Code Online (Sandbox Code Playgroud)
它通常也会发现推文.
有任何想法吗?
我想使用 Python Tweepy 获取包含“love”和/或“#hate”的推文。但是使用我当前的代码如下,它只返回第一个术语(即“爱”)。我几天来一直在尝试调试和阅读 Tweepy/Twitter 文档,但无济于事。请指教。
import tweepy
import time
ckey = ""
csecret = ""
atoken = ""
asecret = ""
OAUTH_KEYS = {'consumer_key':ckey, 'consumer_secret':csecret,
'access_token_key':atoken, 'access_token_secret':asecret}
auth = tweepy.OAuthHandler(OAUTH_KEYS['consumer_key'], OAUTH_KEYS['consumer_secret'])
api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.search, q=('love' or '#hate'), since='2014-09-15', until='2014-09-16').items(500):
try:
print "Tweet created:", tweet.created_at
print "Tweet:", tweet.text.encode('utf8')
counter += 1
except IOError:
time.sleep(60)
continue
Run Code Online (Sandbox Code Playgroud) 我正在尝试返回一个字典,汇总最近的州中心的推文.我正在迭代所有推文,并且对于每条推文,我正在检查所有状态以查看哪个状态最接近.
什么是更好的方法来做到这一点?
def group_tweets_by_state(tweets):
"""
The keys of the returned dictionary are state names, and the values are
lists of tweets that appear closer to that state center than any other.
tweets -- a sequence of tweet abstract data types """
tweets_by_state = {}
for tweet in tweets:
position = tweet_location(tweet)
min, result_state = 100000, 'CA'
for state in us_states:
if geo_distance(position, find_state_center(us_states[state]))< min:
min = geo_distance(position, find_state_center(us_states[state]))
result_state = state
if result_state not in tweets_by_state:
tweets_by_state[result_state]= []
tweets_by_state[result_state].append(tweet)
else: …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建一个 python 程序来获取基于某个关键字的推文。然而,虽然我可以成功检索推文,但它们会被截断。
如何获取推文的全文?
代码:(代码下方的示例输出)(python-twitter 模块)
import twitter
api = twitter.Api(consumer_key=CONSUMER_KEY,
consumer_secret=CONSUMER_SECRET,
access_token_key=ACCESS_TOKEN,
access_token_secret=ACCESS_SECRET)
results = api.GetSearch(term="car", since="2018-04-11", until="2018-04-12", count=5)
for twt in results:
tempTweet = (str(twt))
tweet = json.loads(tempTweet)
for key in tweet:
print(str(key) + ": " + str(tweet[key]))
print("#############################################")
Run Code Online (Sandbox Code Playgroud)
样品输出:
created_at: Wed Apr 11 20:55:25 +0000 2018
favorite_count: 1573
hashtags: []
id: 984173096566341632
id_str: 984173096566341632
lang: en
retweet_count: 1480
source: <a href="https://about.twitter.com/products/tweetdeck" rel="nofollow">TweetDeck</a>
**text**: Caution: Disturbing video. Car speeds through red light, striking pedestrian during vigil Wednesday for …Run Code Online (Sandbox Code Playgroud) python-twitter ×11
python ×8
twitter ×8
tweepy ×2
algorithm ×1
conda ×1
django ×1
facebook ×1
module ×1
python-2.7 ×1
python-3.x ×1
social-media ×1
wrapper ×1