Python x Tweepy: как получить твиты от всех пользователей, содержащихся в списке - PullRequest
0 голосов
/ 13 июня 2018

Я очень, очень новичок в Python для раскрытия информации.

Я успешно вытащил всех пользователей, которые являются членами списка в Twitter.Я также вытащил все твиты пользователя на основе отображаемого имени - оба компонента приведены ниже.Как мне скомбинировать их и вытянуть все твиты из всех пользователей , которые являются членами списка, пожалуйста?Это вообще возможно?Все ниже:

#GOAL: pull all tweets from all users who are memberis of a list.

#imports necessary methods from Twitter library
import json
import tweepy
import time
import csv
import sys

#authorises twitter
CONSUMER_KEY = 'SECRET'
CONSUMER_SECRET = 'SECRET'
ACCESS_TOKEN = 'SECRET'
ACCESS_SECRET = 'SECRET'

#authorisations
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_SECRET)
api = tweepy.API(auth, wait_on_rate_limit=True)

#returns members of a list & some details on them 
for user in tweepy.Cursor(api.list_members, slug="uk-mps-labour", owner_screen_name="tweetminster", include_entities=True).items():
    print(f"{user.id}\t{user.screen_name}\t{user.name}\t{user.description}\t{user.location}\t{user.followers_count}\t{user.friends_count}\t{user.verified}")

#creates a loop to iterate through the list of user ids 

#returns all tweets of a user 
counter = 0 #establishes a counter to number tweets output
for status in tweepy.Cursor(api.user_timeline, screen_name="frogface", tweet_mode="extended").items():
     counter = counter + 1
     print(f"{counter}\t{status.user.id}\t{status.user.screen_name}\t{status.created_at}\t{status.full_text}")

1 Ответ

0 голосов
/ 13 июня 2018

Когда вы перебираете пользователей по списку вместо того, чтобы распечатывать пользовательские данные, добавьте имя_экранов в список.

затем переберите список с именами экранов и получите твиты пользователей.Код будет выглядеть примерно так:

 screen_names = []

#returns members of a list & some details on them 
for user in tweepy.Cursor(api.list_members, slug="uk-mps-labour", owner_screen_name="tweetminster", include_entities=True).items():
    screen_names.append(f"{user.screen_name}")

for i in screen_names:
    #returns all tweets of a user 
    counter = 0 #establishes a counter to number tweets output
    for status in tweepy.Cursor(api.user_timeline, screen_name=i, tweet_mode="extended").items():
         counter = counter + 1
         print(f"{counter}\t{status.user.id}\t{status.user.screen_name}\t{status.created_at}\t{status.full_text}")
...