twython周围一个新闻界固执己见的包装

birdfeeder的Python项目详细描述


travis-imgbirdfeeder==Feed on tweets

安装

pip install birdfeeder

测试

需要nose

nosetests

用法

birdfeeder通过处理许多常见的 使用Twitter API时出现的问题,包括:

  • 分页
  • 速率限制
  • url取消排序
  • 错误处理

到目前为止,我们已经实现了5个方法:connectsearchlist_timelineuser_timelineuser_stats(自定义 方法:

连接

如果您有TWT_API_KEYTWT_API_SECRETTWT_ACCESS_TOKEN, 并将TWT_ACCESS_SECRET设置为环境变量,可以使用 所有方法都没有显式连接但是,如果你想 事先显式连接,还可以将连接传递为 conn到任何方法:

importbirdfeederconn=birdfeeder.connect()tweets=birdfeeder.search(q="hello world",count=10,conn=conn)fortintweets:printt

此外,还可以使用 access_token

importbirdfeederfortinbirdfeeder.search(q="hello world",access_token="authenticed_users_token"):printt

列出时间线

importbirdfeedertweets=birdfeeder.list_timeline(owner_screen_name='cspan',slug='members-of-congress',count=100)fortintweets:printt

用户时间线

importbirdfeedertweets=birdfeeder.user_timeline(screen_name='newslynx')fortintweets:printt

用户统计

这将返回一个用户的统计字典,包括用户运行的时间。 它旨在创建用户元数据的时间序列:

importbirdfeederstats=birdfeeder.user_stats(screen_name="newslynx")printstats

并发性

通过gevent向任何方法添加并发:

tweets=birdfeeder.user_timeline(screen_name="brianabelson",concurrent=True)fortintweets:printt

自定义选项

我们为每个方法添加了一些自定义选项,如下所示:

  • throttle-每个请求之间等待的时间(以秒为单位)(仅 当paginate = True时相关
  • < $ }——请求的最大数量(仅) 当paginate = True时相关
  • wait-错误发生后等待的默认秒数
  • backoff-在每次错误后乘以wait的因子
  • timeout-我们应该放弃 容易出错的请求。在这里,birdfeeder将记录一个警告,但是 否则会悄无声息地失败。

以下是所有方法的默认参数:

default_kws={'paginate':False,'concurrent':False,'num_workers':20,'max_id':None,'throttle':15,'count':200,'max_requests':None,'wait':1,'backoff':2,'timeout':30}

流媒体

最后,我们包含了一个简单的流式api客户端(来自 here)。 这样,初始化时可以传入三个函数:解析 函数、存储函数和错误函数,即:

frombirdfeederimportStreamdefparse(data):returndata['text']defstore(data):printdatadeferror(status_code,data):passs=Stream(parse=parse,store=store,error=error)s.statuses.filter(track='twitter')

致谢

为了写这个图书馆,我大量引用了杰里米·辛格·维恩的 优秀的`twick<;https://github.com/jsvine/twick>;`

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
使用applets查询的多人java游戏?   java如何基于字符串生成数组   基于java多边形的路径查找   java如何对多列ArrayList排序   java批处理更新从更新中返回了意外的行数(Spring/Hibernate)   java如何使用SeleniumWebDriver列出<tr>标记内的所有<td>   java如何使用SimpleFlatMapper将前缀为CSV的列别名到映射?   java为什么通过eclipse运行/调试TomCat时会出现ClassNotFoundException   java Android滚动视图上次视图未显示内部线性布局   替换字符串中不带空格的字符序列   调用方法时Java Swing GUI冻结   java是否允许/建议重用收集器?   在同步方法中使用java hashmap迭代器时   在java XMLDecoder XMLEncoder中写入XMLdatabase   java I无法在活动的片段中填充recyclerview   java Jitsi在调用过程中播放WAV文件如果可能,与音频混合   java JPA为什么我看到DB中每行有两个实体实例?