Tweepy抓取twitter数据 1

之前一直想用爬虫登陆并抓取twitter数据,试过scrapy,requests等包,都没成功,可能是我还不太熟悉的原因,不过

今天发现了一个新包tweepy,专门用于在python中处理twitter API。先尝试一下教程的第一个例子,经过了自己的一点修改

代码如下:

__author__ = 'xyz'

import re
import tweepy

auth = tweepy.OAuthHandler("xxxxx",
                           "xxxxx")
auth.set_access_token("xxxxx",
                      "xxxxx")

api = tweepy.API(auth)


highpoints = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
public_tweets = api.home_timeline()
num = 0
for tweet in public_tweets:
    print num
    num += 1
    text_noem = highpoints.sub('--emoji--', tweet.text)
    text_noem = text_noem.encode('utf8')
print(text_noem)

 代码解释: 
  

第3-4行:导入tweepy和re模块。之所以这么简单的代码中要用re是因为在提取推文过程中遇到了emoji表情,而emoji unicode是无法编码成 gbk 的,所以要用正则表达式把所有表情都替换掉。

第6-9行:设置API和token,这个需要注册后在apps.twitter.com新建application后获得。

第11行:根据auth返回API对象,用于具体返回responses

第14行:设置emoji表情的正则表达式,用于过滤出所有的表情,此处参考了下面注明的一篇stackoverflow文章。

第15行:获取用户时间线上的信息

第16行:设置一个计数的变量

第17行:遍历所有的推文:

循环内:

第18-22行:输出序号,并输出推文内容,将所有的emoji unicode用 ’--emoji--‘ 替代并将unicode编码为utf8以解决不能输出的问题。



抓取Twitter数据的重点是twitter要求所有requets都必须经过OAuth认证,而tweepy这个包在这方面的设定让authentication变得十分方便。



参考文献:

http://stackoverflow.com/questions/13729638/how-can-i-filter-emoji-characters-from-my-input-so-i-can-save-in-mysql-5-5

你可能感兴趣的:(Python)