Python - бот для Twitter, который ретвитит на основе x ретвитов.

поэтому я работаю над своим первым кодом для простого бота Twitter, который ретвитит на основе хэштегов. Что я хочу сделать, так это добавить немного кода, который по-прежнему позволит боту ретвитнуть твиты, для которых указан один хэштег, но также убедиться, что у твитов уже есть X ретвитов, чтобы бот не писал твиты для небольших личных аккаунтов, у которых есть практически нет взаимодействий.

Вот код, который у меня пока работает, просто ретвитнул всех и всех, кто использует один из хэштегов:

import tweepy

from time import sleep

from keys import *

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)

auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)


for tweet in tweepy.Cursor(api.search, q='#bcafc OR #hcafc OR #rufc OR #lufc OR #mot OR #alaw OR #twitterblades OR #sufc OR #forgedinsteel OR #swfc OR #swfcLIVE OR #notjustagame OR #youreds OR #utb OR #boro OR #htafc OR #drfc').items():

try:

    print('\Yorkshire Footy Bot found tweet by @' + tweet.user.screen_name + '. ' + 'Attempting to retweet.')


    tweet.retweet()


    print('Retweet published successfully.')


    sleep(20)


except tweepy.TweepError as error:

    print('\nError. Retweet not successful. Reason: ')

    print(error.reason)


except StopIteration:

    break

Если нет возможности сделать это, можно ли ретвитить только те аккаунты, на которые подписан бот? Даже это помогло бы ограничить отправку случайных твитов.


person Jamie Wilkinson    schedule 22.11.2018    source источник
comment
В политике для разработчиков есть определенные правила относительно того, какой контент и как следует ретвитить - ›help.twitter.com/en/rules-and-policies/twitter-automation   -  person Andy Piper    schedule 22.11.2018
comment
Ура, друг, мы уже знакомы с этим, я обещаю. Бот будет работать только около десяти минут в понедельник во второй половине дня для презентации, после чего он будет изящно удален.   -  person Jamie Wilkinson    schedule 24.11.2018


Ответы (1)


Если вы посмотрите на в документации вы увидите, что Twitter предоставляет вам множество метаданных о твите.

Вы правильно определили, что tweet.user.screen_name дает вам имя пользователя.

Аналогичным образом вы можете использовать tweet.retweet_count, чтобы узнать, сколько раз твит ретвитился.

Вы могли бы использовать

for tweet in tweepy.Cursor(api.search, q='#....').items(): if tweet.retweet_count > 10: ...

Но, как сказал Энди, пожалуйста, не создавайте бота, который бездумно ретвитит других.

person Terence Eden    schedule 22.11.2018
comment
Спасибо за помощника, он будет работать ненадолго во время презентации в понедельник, просто чтобы доказать, что он работает, затем он будет изящно удален. Могу вас заверить, что это не спам, нам просто нужно было построить бизнес-обоснование на основе того, «что мы сделали». - person Jamie Wilkinson; 24.11.2018