我最近开始用粗呢,尤其是api.user_时间线. 我的脚本从用户那里下载一系列tweets,并将Tweepy状态调用中提供的大多数不同细节打印到文本文件中。我的问题是从twitter中撤销这些微小的url。我在这个网站上读到了一个答案,正确的解决方法是在Twitter实体中使用“扩展的url”命令,这就是我所做的。这是我的代码:
import tweepy
import codecs
auth = tweepy.OAuthHandler("xxx", "xxx")
auth.set_access_token("yyy", "yyy")
with codecs.open("file.txt", encoding='utf-8', mode='w+') as f:
api = tweepy.API(auth)
for status in tweepy.Cursor(api.user_timeline, "xxx", include_entities=True).items():
...
# Extracting info from the entities
for hashtag in status.entities['hashtags']:
f.write(format(hashtag['text']))
for url in status.entities['urls']:
f.write(format(url['expanded_url']))
问题是这些扩展的url并不总是我需要的完整url。例如,tweet的相关代码给出的结果是“http://goo.gl/sOH17n”,它仍然隐藏了文章的真正来源。我有一段代码,它提供了带有urllib2的完整url,但是当我把它们放在一起时,我得到了一个'HTTPError:HTTPError 403:Forbidden'。这是我的试用版,但不起作用(它总是与部件集成在一起,所以不通过身份验证不是问题)
^{pr2}$所以,我的问题是,有没有办法在Tweepy中找到真正完整的url?如果没有,为什么与urllib2的集成不起作用?如果这个问题看起来微不足道,我很抱歉,但我似乎找不到解决这个问题的方法,tweepy的文档也很粗略。在
提前感谢您的回答!在
多亏了swstephe,我把注意力集中在head请求上,这样就避免了打开页面,我发现模块请求非常好用。在
所以我找到了一个解决方案:
我还是不明白为什么urllib2不能工作。我想从现在开始我会使用请求。谢谢你的帮助。我真的很感激。在
这个网址来自谷歌,所以我不认为Tweepy存储的是如果你点击这个链接,谷歌会给你指示的地方。您可以使用httplib找到这一点,(这样您就可以获得HEAD,而不必获取它将加载的页面的完整获取):
当我运行它时,我得到一个URL,而不是403错误。这个错误通常表示您没有权限查看该页面,所以我猜您给出的URL不是您发布的那个。在
相关问题 更多 >
编程相关推荐