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的更多相关文章

  1. Twitter REST API, Streaming API

    原文链接           用Twitter自己的话来说:   REST API The REST API provides simple interfaces for most Twitter f ...

  2. 【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 ...

  3. Search API 官方文档 可以用了查看自己的app

    Search API October 24, 2012 - HTTPS is now supported for Search and Lookup requests. Please update y ...

  4. ElasticSearch Search API 简介

    REST request URI curl 'localhost:9200/bank/_search?q=*&pretty' 1. localhost:9200/bank/_search,以 ...

  5. Elasticsearch学习笔记(二)Search API 与 Query DSL

    一. Search API eg: GET /mall/product/_search?q=name:productName&sort=price desc 特点:search的请求参数都是以 ...

  6. 通过Google Custom Search API 进行站内搜索

    今天突然想把博客的搜索改为google的站内搜索,印象中google adsense中好像提高这个站内搜索的代码,但苦逼的是google adsense帐号一直审核不通过,所以只能通过google c ...

  7. 申请Bing Search API

    地址:https://datamarket.azure.com/home 没有帐号先注册一个,然后登录. 1:在数据中订阅Bing Search API,如果找不到就使用这个地址: https://d ...

  8. Elasticsearch 6.x版本全文检索学习之Search API

    Elasticsearch 6.x版本全文检索学习之Search API. 1).Search API,实现对es中存储的数据进行查询分析,endpoind为_search,如下所示. 方式一.GET ...

  9. Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介)

    原文:Elasticsearch7.X 入门学习第四课笔记---- Search API之(Request Body Search 和DSL简介) 版权声明:本文为博主原创文章,遵循CC 4.0 BY ...

随机推荐

  1. iOS Xcode 调试技巧 全局断点这样加才有意思

    http://blog.sina.com.cn/s/blog_876a2c9901016ezh.html

  2. 重温设计模式(三)——职责链模式(chain of responsibility)

    一. 写在前面的 这么多的设计模式,我觉得职责链是我第一次看上去最简单,可是回想起来却又最复杂的一个模式. 因此,这个文章我酝酿了很久,一直也没有胆量发出来,例子也是改了又改,可是仍然觉得不够合理.所 ...

  3. MySql数据类型详解

    可配合http://www.cnblogs.com/langtianya/archive/2013/03/10/2952442.html学习 MySql数据类型 1.整型(xxxint)   MySQ ...

  4. editplus快捷键大全之editplus编辑快捷键

    前面我们说了editplus快捷键大全之editplus文件快捷键和editplus快捷键大全之editplus光标快捷键,这里我们讲一下editplus快捷键大全之editplus编辑快捷键 删除光 ...

  5. 关于Eclipse部署openfire3.8.2源码的体会

    因为公司要做人际银行的一个项目需要openfire(服务器)+asmack(客户端),所以需要对消息的推送及消息发送知识的积累.所以需要研究xmpp,以前不是很了解这个技术,现在需要学习.首先就得部署 ...

  6. ICA

    参考:http://www.cnblogs.com/jerrylead/archive/2011/04/19/2021071.html 对高斯分布的样本点效果不好.数学真是博大精深啊

  7. meanshift和camshift

    参考:http://www.cnblogs.com/tornadomeet/archive/2012/03/15/2398769.html 照着这位大神的代码运行了一下,发现meanshift的跟踪效 ...

  8. AspectJ报错:error at ::0 can't find referenced pointcut XXX

    今天在使用AspectJ进行注解切面时,遇到了一个错误. 切点表达式就是无法识别——详细报错信息如下: Exception in thread "main" org.springf ...

  9. Linux init进程详解

    init模块 一般来说,Linux程序只能用另一个Linux程序启动.例如,登录Linux终端程序Mingetty. 但终端程序又由谁启动呢?在计算机上启动Linux时,内核装入并启动init程序. ...

  10. linux shell expr 使用

    linux shell expr 使用 收藏人:春秋百味 -- | 阅: 转: | | 分享 非原创, 摘自:<LINUX与UNIX Shell编程指南> 17.5 expr用法 expr ...