Python 3.x Twitter API,用美元符号搜索

Python 3.x Twitter API,用美元符号搜索,python-3.x,twitter,windows-10,anaconda,Python 3.x,Twitter,Windows 10,Anaconda,这段代码打开了一个twitter侦听器,搜索词在变量中,有些搜索有效,有些则无效。我将AMZN添加到升级列表中只是为了确保有一个常用术语,因为这是使用一个开放的Twitter流,而不是搜索现有的tweet 下面,我想我们只需要回顾数字2和4 我正在Windows 10上使用Python 3.5.2::Anaconda 4.0.0(64位) 变量搜索 搜索:upgrades_str:['AMZN'、'SWK'、'AIQUY'、'SFUN'、'DOOR']=返回诸如“我厌倦了人”之类的推文 搜索:u

这段代码打开了一个twitter侦听器,搜索词在变量中,有些搜索有效,有些则无效。我将AMZN添加到升级列表中只是为了确保有一个常用术语,因为这是使用一个开放的Twitter流,而不是搜索现有的tweet

下面,我想我们只需要回顾数字2和4

我正在Windows 10上使用Python 3.5.2::Anaconda 4.0.0(64位)

变量搜索

  • 搜索:upgrades_str:['AMZN'、'SWK'、'AIQUY'、'SFUN'、'DOOR']=返回诸如“我厌倦了人”之类的推文

  • 搜索:upgrades_str:['$AMZN'、'$SWK'、'$AIQUY'、'$SFUN'、'$DOOR']=返回tweets作为“芝加哥到南佛罗里达”。嘻哈生活我希望这项搜索能够成功。

  • 显式搜索

  • 通过将变量“upgrades_str”替换为显式字符串进行搜索:['AMZN'、'SWK'、'AIQUY'、'SFUN'、'DOOR']=returns'经过两次访问,我终于找到了在瑞典如何锁上门的方法。这一个至少有搜索词“门”

  • 通过将变量“upgrades_str”替换为显式字符串进行搜索:[“$AMZN”、“$SWK”、“$AIQUY”、“$SFUN”、“$DOOR”]=返回“$AMZN$WFM$KR$REG$KIM:Amazon's Whole Foods buy将购物中心置于真实风险中”因此显式调用有效,但变量不同。

  • 显式搜索['$AMZN']=返回一条很好的推文:“方舟子下周的设置真的很好!增加$googl jun23 970c平均值为4.36$FB$AMZN'

  • 显式搜索['cool']返回“我不敢相信我有这么酷的枕头!”

    import tweepy
    import dataset
    from textblob import TextBlob
    from sqlalchemy.exc import ProgrammingError
    import json
    
    db = dataset.connect('sqlite:///tweets.db')
    
    class StreamListener(tweepy.StreamListener):
    
    def on_status(self, status):
        if status.retweeted:
            return
    
        description = status.user.description
        loc = status.user.location
        text = status.text
        coords = status.coordinates
        geo = status.geo
        name = status.user.screen_name
        user_created = status.user.created_at
        followers = status.user.followers_count
        id_str = status.id_str
        created = status.created_at
        retweets = status.retweet_count
        bg_color = status.user.profile_background_color
        blob = TextBlob(text)
        sent = blob.sentiment
    
        if geo is not None:
            geo = json.dumps(geo)
    
        if coords is not None:
            coords = json.dumps(coords)
    
        table = db['tweets']
        try:
            table.insert(dict(
                user_description=description,
                user_location=loc,
                coordinates=coords,
                text=text,
                geo=geo,
                user_name=name,
                user_created=user_created,
                user_followers=followers,
                id_str=id_str,
                created=created,
                retweet_count=retweets,
                user_bg_color=bg_color,
                polarity=sent.polarity,
                subjectivity=sent.subjectivity,
            ))
        except ProgrammingError as err:
            print(err)
    
    def on_error(self, status_code):
        if status_code == 420:
            return False
    
    access_token = 'token'
    access_token_secret = 'tokensecret'
    consumer_key = 'consumerkey'
    consumer_secret = 'consumersecret'
    
    auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
    auth.set_access_token(access_token, access_token_secret)
    api = tweepy.API(auth)
    
    stream_listener = StreamListener()
    stream = tweepy.Stream(auth=api.auth, listener=stream_listener)
    stream.filter(track=upgrades_str, languages=['en'])
    

  • 如果将来有人遇到问题,答案如下:“请注意,标点符号不被视为#hashtag或@title的一部分,因此包含标点符号的音轨术语将与#hashtags或@titles不匹配。”

    对于多个术语,需要将从列表转换的字符串更改为['term1,term2']。只需去掉撇号和空格:

    upgrades_str = re.sub('[\' \[\]]', '', upgrades_str)
    upgrades_str = '[\''+format(upgrades_str)+'\']'