Twitter search API
Twitter crawler 与sina 微博类似,使用twitter api之前,首先要有twitter的账号,在twitter developer中创建应用(https://apps.twitter.com/app/new)。

创建成功之后可以获得应用的信息,包括Consumer key和Consumer secret。并generate access token,将这四个数据保存下来,
接下来可以借助twitter api 进行twitter 抓取,现有的twitter api的python版本很多,这里主要介绍tweepy 以及python-twitter。
1. python-twitter
安装:在cmd 窗口中使用pip 命令:pip install python-twitter
安装成功后,可以运行如下代码:
import twitter import optparse
import sys def print_safe(string):
"""
Format a string for safe printing
"""
return string.encode('cp437', 'xmlcharrefreplace') def print_tweet(tweet):
"""
Format and print `tweet`.
"""
print "@" + print_safe( tweet.GetUser().GetScreenName() ) + \
": " + print_safe(tweet.GetText()) def search(search_term):
"""
Print recent tweets containing `search_term`.
"""
api = twitter.Api()
tweets = api.GetSearch(search_term)
for tweet in tweets:
print_tweet(tweet) def trending_topics():
"""
Print the currently trending topics.
"""
api = twitter.Api()
trending_topics = api.GetTrendsCurrent()
for topic in trending_topics:
print print_safe(topic.name) def user_tweets(username):
"""
Print recent tweets by `username`.
"""
api = twitter.Api()
user_tweets = api.GetUserTimeline(screen_name=username)
for tweet in user_tweets:
print_tweet(tweet) def trending_tweets():
"""
Print tweets for all the trending topics.
"""
api = twitter.Api() trending_topics = api.GetTrendsCurrent()
tweets = []
# To add some variety, let's round-robin through the trending
# topics, displaying a tweet from each until we run out of tweets.
for topic in trending_topics:
tweets.append((topic, api.GetSearch(topic.name))) while True:
for topic, topic_tweets in tweets:
if topic_tweets:
print_tweet(topic_tweets.pop())
else:
return def main(args):
parser = optparse.OptionParser("""Usage: %prog [-s <search term> | -t | -u <username>]""") parser.add_option("-s", "--search",
type="string",
action="store",
dest="search_term",
default=None,
help="Display tweets containing a particular string.")
parser.add_option("-t", "--trending-topics",
action="store_true",
dest="trending_topics",
default=False,
help="Display the trending topics.")
parser.add_option("-u", "--user",
type="string",
action="store",
dest="username",
default=None,
help="Display tweets for a particular public user.")
parser.add_option("-w", "--trending-tweets",
action="store_true",
dest="trending_tweets",
default=None,
help="Display the tweets from trending topics.") (opts, args) = parser.parse_args(args) if opts.search_term:
search(opts.search_term)
elif opts.trending_topics:
trending_topics()
elif opts.username:
user_tweets(opts.username)
elif opts.trending_tweets:
trending_tweets() if __name__ == "__main__":
main(sys.argv[1:])
PS:有时会遇到程序报错,缺少module,可能系统安装过python-twitter,但是版本较低,因此可以首先卸载twitter-python 再重新安装,卸载命令为:pip uninstall python-twitter。
2.tweepy:
首先tweepy下载:https://github.com/tweepy/tweepy
Twitter search API的更多相关文章
- Twitter REST API, Streaming API
原文链接 用Twitter自己的话来说: REST API The REST API provides simple interfaces for most Twitter f ...
- 【337】Text Mining Using Twitter Streaming API and Python
Reference: An Introduction to Text Mining using Twitter Streaming API and Python Reference: How to R ...
- Search API 官方文档 可以用了查看自己的app
Search API October 24, 2012 - HTTPS is now supported for Search and Lookup requests. Please update y ...
- ElasticSearch Search API 简介
REST request URI curl 'localhost:9200/bank/_search?q=*&pretty' 1. localhost:9200/bank/_search,以 ...
- Elasticsearch学习笔记(二)Search API 与 Query DSL
一. Search API eg: GET /mall/product/_search?q=name:productName&sort=price desc 特点:search的请求参数都是以 ...
- 通过Google Custom Search API 进行站内搜索
今天突然想把博客的搜索改为google的站内搜索,印象中google adsense中好像提高这个站内搜索的代码,但苦逼的是google adsense帐号一直审核不通过,所以只能通过google c ...
- 申请Bing Search API
地址:https://datamarket.azure.com/home 没有帐号先注册一个,然后登录. 1:在数据中订阅Bing Search API,如果找不到就使用这个地址: https://d ...
- Elasticsearch 6.x版本全文检索学习之Search API
Elasticsearch 6.x版本全文检索学习之Search API. 1).Search API,实现对es中存储的数据进行查询分析,endpoind为_search,如下所示. 方式一.GET ...
- Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介)
原文:Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介) 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...
随机推荐
- webform添加到webapi的支持
1.添加引用 添加对 System.Net.Http , System.Net.Http.Formatting , System.Web.Http , System.Web.Http.Common , ...
- servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解1
servlet的一个web容器中有且只有一个servlet实例或有多个实例的理解 (2013-06-19 19:30:40) 转载▼ servlet的非线程安全,action的线程安全 对提交 ...
- css absolute与relative的区别
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- ccleaner注册码
名称:Registered User 密钥:CBB4-FJN4-EPC6-G5P6-QT4C 先不要启动程序,然后断网注册.
- .NET笔试面试题
.NET 1.const和readonly的区别? 2.静态类和实例区别?什么时候使用? 3.接口和抽象类的区别?什么时候使用? 4.类和结构体的区别?什么时候使用? 5.文件操作 6.序列化 7.O ...
- 如何查看ubuntu下显卡驱动是否已经成功安装
首先得安装mesa-utils,在终端输入命令:sudo apt-get install mesa-utils然后再运行命令:glxinfo | grep rendering如果结果是“yes”,证明 ...
- 漫长Appium之路(一)——从黑苹果到虚拟机
作为一名普普通通的实习生,我也开始习惯折腾一般的生活了.部门应该最近是要搞个iOS自动化测试工具,我从最开始说起吧. 应该是上上上周五.主管找到我,说要装一个黑苹果,要我尽快把黑苹果能支持的硬件配置给 ...
- 建站时注意敏感词的添加_seo优化禁忌
之前接手一个站点,网站标题中出现一个“三级医院”的词,虽然这个词在我们看来是没有问题的,医院评级中“三级医院”算是等级很高的,很多医院为了体现等级会在明显的地方着重加注.但是我们要考虑一下搜索引擎的分 ...
- Unity3D中定时器的使用
源地址:http://unity3d.9tech.cn/news/2014/0402/40149.html 在游戏设计过程中定时器是必不可少的工具,我们知道update方法是MonoBehavior中 ...
- C语言课程1——Hello World
相信大家看了第一篇文章后,都信心满满,后边咱来点实际吧,上代码,经典之作:Hello World. 首先,不知道大家用的什么工具,VC6.0(太老了,强烈建议不用),VS,或是其他~ Hello Wo ...