当前位置: 首页 > 面试题库 >

如何向tweepy模块添加位置过滤器

艾正浩
2023-03-14
问题内容

我发现以下代码非常有效,可以让我在Python Shell中查看标准的1%的twitter firehose:

import sys
import tweepy

consumer_key=""
consumer_secret=""
access_key = ""
access_secret = ""


auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)


class CustomStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        print status.text

    def on_error(self, status_code):
        print >> sys.stderr, 'Encountered error with status code:', status_code
        return True # Don't kill the stream

    def on_timeout(self):
        print >> sys.stderr, 'Timeout...'
        return True # Don't kill the stream

sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=['manchester united'])

如何添加过滤器以仅分析来自特定位置的推文?我见过人们在其他与Twitter相关的Python代码中添加GPS,但我在Tweepy模块中找不到sapi的任何特定内容。

有任何想法吗?

谢谢


问题答案:

流API不允许同时按位置AND关键字进行过滤。

边界框不充当其他过滤器参数的过滤器。例如,track = twitter&locations =
-122.75,36.8,-121.75,37.8将匹配任何包含术语Twitter(甚至是非地理推文)或来自旧金山地区的推文。

资料来源: https
//dev.twitter.com/docs/streaming-
apis/parameters#locations

您可以做的是向流API询问关键字或定位的tweet,然后通过查看每个tweet过滤应用程序中的结果流。

如果按以下方式修改代码,则将捕获英国的推文,然后这些推文将被过滤以仅显示包含“曼彻斯特联合”的推文

import sys
import tweepy

consumer_key=""
consumer_secret=""
access_key=""
access_secret=""

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_key, access_secret)
api = tweepy.API(auth)


class CustomStreamListener(tweepy.StreamListener):
    def on_status(self, status):
        if 'manchester united' in status.text.lower():
            print status.text

    def on_error(self, status_code):
        print >> sys.stderr, 'Encountered error with status code:', status_code
        return True # Don't kill the stream

    def on_timeout(self):
        print >> sys.stderr, 'Timeout...'
        return True # Don't kill the stream

sapi = tweepy.streaming.Stream(auth, CustomStreamListener())    
sapi.filter(locations=[-6.38,49.87,1.77,55.81])


 类似资料:
  • 我试图定义两个不同的bean(都扩展了AbstractPreAuthenticatedProcessingFilter):一个用于在“开发”配置文件处于活动状态时从请求头(如USER_ID)中抓取一个头,另一个用于在“开发”配置文件不处于活动状态时从请求头中抓取一个JWT。(但从概念上讲,我实际上只是尝试基于bean本身的存在以编程方式注册过滤器)目前,我甚至没有尝试使用概要文件,因为我遇到了一个

  • 问题内容: 我正在使用嵌入式Jetty,我想添加一个servlet过滤器以在每个请求之前检查身份验证。我尝试按照以下示例进行操作,但签名似乎已更改。 我的Jetty启动器看起来像这样: 当我取消注释 我发现签名已更改。因此,我想退一步,问一问,对于嵌入式Jetty,如何添加一个在请求开始时运行的过滤器,并仅在满足某些条件时才允许请求继续进行? AuthenticationFilter类的开始看起来

  • 过滤模块简介 (90%) 执行时间和内容 (90%) 过滤(filter)模块是过滤响应头和内容的模块,可以对回复的头和内容进行处理。它的处理时间在获取回复内容之后,向用户发送响应之前。它的处理过程分为两个阶段,过滤HTTP回复的头部和主体,在这两个阶段可以分别对头部和主体进行修改。 在代码中有类似的函数: ngx_http_top_header_filter(r); ngx_http_top_b

  • 我想知道,在spring boot中是否有类(用于web应用程序)的注释?也许是? 我想在我的项目中添加一个自定义筛选器。 spring boot参考指南提到了关于,但我不确定如何使用它。

  • 我将项目使用的SDK升级为Java10。以下导入语句导致错误: 导入javax.annotation.PostConstruct; 包的javax。注释“在模块”java中声明。xml。ws。注释',但模块“应用程序”不读取它 点击ALT ENTER让Intellij修复它,我收到以下选项: 我选择了添加Maven依赖...,然后将以下依赖项添加到pom.xml. 查看新添加的JAR清单。MF,我

  • 问题内容: 我想知道,中的类(对于Web应用程序)是否有任何注释?也许@Filter吧? 我想在项目中添加自定义过滤器。 《 Spring Boot参考指南 》提到了关于 ,但是我不确定如何使用它。 问题答案: 如果您要设置第三方过滤器,则可以使用FilterRegistrationBean。例如相当于web.xml 这些将是@Configuration文件中的两个bean 上面已经用spring