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 ...
随机推荐
- Developing a plugin framework in ASP.NET MVC with medium trust
http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust.aspx January 7, ...
- mysql 索引 详解
索引是快速搜索的关键.MySQL索引的建立对于MySQL的高效运行是很重要的.下面介绍几种常见的MySQL索引类型. 在数据库表中,对字段建立索引可以大大提高查询速度.假如我们创建了一个 mytabl ...
- Linux下如何搭建VPN服务器(转)
VPN服务器的配置与应用 实验场景 通过将Linux配置VPN服务器允许远程计算机能够访问内网. 我的目的: 现在需要开发第三方接口,而第三方接口有服务器IP地址鉴权配置,这样在本地开发出来的程序每次 ...
- JAVA本地方法详解,什么是JAVA本地方法?
一. 什么是Native Method 简单地讲,一个Native Method就是一个java调用非java代码的接口.一个Native Method是这样一个java的方法:该方法的实现由非j ...
- Ubuntu技巧之 is not in the sudoers file解决方法
转自:http://www.linuxidc.com/Linux/2010-12/30386.htm 1)进入到root用户下. 2)添加文件的写权限.也就是输入命令"chmod u+w / ...
- HDOJ 1848 Fibonacci again and again
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- [Android教程]EditText怎样限制用户的输入?数字/字母/邮箱
有输入必有验证.为了防止用户随便输入确保提交数据的合法性,程序不得不在文本输入框(EditText)中增加限制或验证. 关于输入类型有数字.字母.邮箱.电话等形式,这些具体得根据业务来.那么Andro ...
- k-means
参考:http://www.cnblogs.com/jerrylead/archive/2011/04/06/2006910.html k-means是无监督的聚类算法,比较简单,但包含的思想不简单, ...
- MyBatis多数据源配置(读写分离)
原文:http://blog.csdn.net/isea533/article/details/46815385 MyBatis多数据源配置(读写分离) 首先说明,本文的配置使用的最直接的方式,实际用 ...
- FOJ 2161 Jason and Number
暴力模拟找规律: 552287 2014-04-23 21:08:48 Accepted 2161 Visual C++ 0 ms 192KB 347B Watermelon #include< ...