使用 Python-Twitter 搜索 API 获取最新推文 ID

在这里插入图片描述

1. 问题背景

在使用 Twitter 搜索 API 获取推文时,我们可能会遇到重复获取相同推文的问题。这可能会导致我们在处理推文时出现数据丢失或重复的情况。为了解决这个问题,我们需要找到一种方法来避免获取重复的推文。

2. 解决方案

一种解决方法是使用 Twitter 搜索 API 中的 since_id 参数。since_id 参数可以让我们指定一个推文 ID,并仅获取该推文 ID 之后发布的推文。通过这种方式,我们可以避免获取重复的推文。

下面是一个使用 since_id 参数获取最新推文 ID 的 Python 代码示例:

import twitter

class Test():

    def __init__(self):
        self.t_auth()
        self.hashtag = ['justinbieber']

        self.tweets_1 = []
        self.ids_1 = []
        self.created_at_1 = []
        self.tweet_text_1 = []
        self.last_id_1 = ""
        self.page_1 = 1

        self.tweets_2 = []
        self.ids_2 = []
        self.created_at_2 = []
        self.tweet_text_2 = []
        self.last_id_2 = ""
        self.page_2 = 1

        for i in range(1, 16):
            self.tweets_1.extend(self.api.GetSearch(self.hashtag, per_page=100, since_id=self.last_id_1, page=self.page_1))
            self.page_1 += 1

        print(len(self.tweets_1))

        for t in self.tweets_1:
            self.ids_1.insert(0, t.id)
            self.created_at_1.insert(0, t.created_at)
            self.tweet_text_1.insert(0, t.text)
            self.last_id_1 = t.id

        self.last_id_2 = self.last_id_1

        for i in range(1, 16):
            self.tweets_2.extend(self.api.GetSearch(self.hashtag, per_page=100, since_id=self.last_id_2, page=self.page_2))
            self.page_2 += 1

        print(len(self.tweets_2))

        for t in self.tweets_2:
            self.ids_2.insert(0, t.id)
            self.created_at_2.insert(0, t.created_at)
            self.tweet_text_2.insert(0, t.text)
            self.last_id_2 = t.id

        print('Total number of tweets in test 1: ', len(self.tweets_1))
        print('Last id of test 1: ', self.last_id_1)

        print('Total number of tweets in test 2: ', len(self.tweets_2))
        print('Last id of test 2: ', self.last_id_2)

        print('##################################')
        print('#############OVERLAPING###########')

        ids_overlap = set(self.ids_1).intersection(self.ids_2)
        tweets_text_overlap = set(self.tweet_text_1).intersection(self.tweet_text_2)
        created_at_overlap = set(self.created_at_1).intersection(self.created_at_2)

        print('Ids: ', len(ids_overlap))
        print('Text: ', len(tweets_text_overlap))
        print('Created_at: ', len(created_at_overlap))

        print(ids_overlap)
        print(tweets_text_overlap)
        print(created_at_overlap)

    def t_auth(self):
        consumer_key = "xxx"
        consumer_secret = "xxx"
        access_key = "xxx"
        access_secret = "xxx"

        self.api = twitter.Api(consumer_key, consumer_secret, access_key, access_secret)
        self.api.VerifyCredentials()

        return self.api


if __name__ == "__main__":
    Test()

在上面的代码中,我们在第 27 行使用 since_id 参数来指定一个推文 ID,并仅获取该推文 ID 之后发布的推文。通过这种方式,我们可以避免获取重复的推文。

另外,我们还可以使用 max_id 参数来指定一个推文 ID,并仅获取该推文 ID 之前的推文。这也可以用来避免获取重复的推文。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python-gitlab的API可以方便地获取gitlab仓库的信息。你可以通过调用API获取用户、用户组、项目等相关信息。通过下载压缩包内的现成的py脚本,你可以直接使用这些代码来实现获取gitlab仓库的功能。 另外,还有一个使用python代码获取gitlab仓库每日代码更新状况的方法。这个方法适用于需要制作dashboard的运维人员和有需求的管理场景。你可以使用这个代码来获取所有gitlab项目所有分支下提交代码的状况,并将数据存入到MySQL数据库中。在服务器上使用python运行相应的代码就可以实现这个功能。 此外,还有一个svm支持向量机的python代码,可以使用HOG-Linear SVM进行人体检测。你可以下载并使用这个代码来进行人体检测的相关任务。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [使用python3通过python-gitlab的API获取gitlab的仓库、用户等信息](https://download.csdn.net/download/zhgm1985/10980647)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [python获取gitlab代码仓库每日代码更新状况](https://download.csdn.net/download/qq_42391153/87569478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [在Python使用HOG-Linear SVM进行人体检测.zip](https://download.csdn.net/download/qq_35831906/88252977)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值