当前位置: 首页 > 知识库问答 >
问题:

在tweepy上创建twitter线程不工作

傅啸
2023-03-14

这是我的第一个问题,所以如果你需要我补充什么,请告诉我。

我在twitter上有一个使用tweepy的机器人,它可以从一本书上发布短语。当我有一个短语

所以,我想用这个列表创建一个twitter线程,以这种方式,这个短语将在回复前一条的每条twitter中继续形成。

#tweet_list is the broke down phrase

home = api.user_timeline(user_id = "myuser", count = 50, tweet_mode="extended")
first_tweet = True

for i in range(len(tweet_list)):
            if first_tweet == True:
                tweet = tweet_list[0]
                api.update_status(status=tweet)
                first_tweet = False
                time.sleep(30)

            else:
                tweet = tweet_list[i]
                last_tweeted = home[0] #gets the latest tweet from my account
                api.update_status(status=tweet, in_reply_to_status_id=last_tweeted.id, auto_populate_reply_metadata=True)
                time.sleep(30)

这个想法是,我将迭代tweet_list,首先在推特上发布短语的第一部分,然后继续执行代码的下一部分,在那里我将获得最新的推文并回复它。我不知道这是否是最好的解决方案,可能不是,因为 Tweepy 向我返回此错误:

tweepy.error.TweepError: [{'code': 187, 'message': 'Status is a duplicate.'}]

如果我尝试发推,机器人工作正常

提前感谢!

共有1个答案

那宏大
2023-03-14

我就是这样做的。我做了一个函数来将文本分成块。

def devide_post(message):
    if len(message) > 240:
        parts = math.ceil(len(message) / 240)
        message = message.split()

        messagelength = math.ceil(len(message) / parts)
        chunks = [
            message[i : i + messagelength]
            for i in range(0, len(message), messagelength)
        ]
        message_chunks = []
        for i, j in enumerate(chunks):
            message_chunks.append(" ".join(j).strip() + f" {i+1}/{len(chunks)}")
        return message_chunks
    else:
        return [message]

这将把你的消息分成一个消息列表。如果chunck中有4条tweets,它还会在“1/4”后面添加一个计数器。如果你愿意,可以去掉这部分。

然后我发了这样的推文:

message = "my messages"
previous_message = None
for i in devide_post(message):
    previous_message = post_tweet(i, previous_message).id

编辑:这是我的post_tweet函数:

def post_tweet(message, reply=None):
    return api.update_status(message, reply)
 类似资料:
  • 使用Tweepy v2访问推文图片网址的优雅方式是什么?Twitter发布了他们API的v2,Tweepy将他们的python模块调整为它(Tweepy v2)。 举个例子,我有一个tweet的数据帧,用tweet创建,保存tweet id等等https://twitter.com/federalreserve/status/1501967052080394240 图片保存在不同的url下,twe

  • 通常,当我使用twitter流api时,我可以直接从以下位置访问标签: 推特- 当用tweepy搜索关于关键词/标签的推文时,它会下载一个<code> 当我搜索实体/主题标签时,我在作者下找到了第一个(我寻找的)。 推特- 这很奇怪。 “标签”位于 推特- 看起来像这样: 当我试图从 推特- 在循环中: 结果:hashtags是一个空字符串.. 使用时: 推特- 生成此错误: 我记得我最后一次和最

  • 仓库中存放开发项目代码、文档等,需要创建一个工程目录。   创建成功!

  • 当使用Tweepy收集视频推文时,通常返回的状态对象有一个属性,其中包含媒体信息,如指向mp4文件的直接链接。 但是,似乎Amplify视频(amp.twimg.com)的状态缺少此属性,因此我在收集媒体URL时遇到问题。如果您使用浏览器(例如 http://amp.twimg.com/v/50bac95c-1508-40c6-a0fc-c1b26a53a3b8)导航,他们有一个指向视频的链接,这

  • 我正在使用使用Tweepy库的Python代码来检索特定主题标签的Twitter数据,但问题是我需要检索特定时期,例如,从2013年6月30日到2013年12月30日。我该怎么做?