user_group.add_argument("--screen_name", "-s", help="User's screen name") user_group.add_argument("--user_id", "-i", help="User's ID") args = parser.parse_args() api = tweepy.API(get_oauth_handler()) user_arg = {} if args.screen_name: user_arg["screen_name"] = args.screen_name elif args.user_id: user_arg["user_id"] = args.user_id display_user = list(user_arg.values())[0] logger.info("Getting %s's timeline", display_user) page = 0 total_posts = 0 while True: page += 1 statuses = handle_rate_limit(api, "user_timeline", page=page, **user_arg) if not statuses: break total_posts += len(statuses) for status in statuses: print(json.dumps(status._json)) logger.info("Found %d tweets on %s's timeline", total_posts, display_user)
#!/usr/bin/env python3 import argparse import json import tweepy from util import get_oauth_handler, handle_rate_limit parser = argparse.ArgumentParser(description="Fetch information about a Twitter user") parser.add_argument("screen_name", help="User's screen name") args = parser.parse_args() api = tweepy.API(get_oauth_handler()) user = handle_rate_limit(api, "get_user", screen_name=args.screen_name) print(json.dumps(user._json))
# The lookup users endpoint only accepts 100 user IDs at a time. # To run this with a list of more than 100 IDs, use: # cat user_ids.txt | xargs -n 100 ./lookup_users.py import argparse import json import tweepy from util import logger, get_oauth_handler, handle_rate_limit parser = argparse.ArgumentParser(description="Fetch information about users") parser.add_argument("user_ids", help="User ID or screen name", metavar="user_id", nargs="+") parser.add_argument("-s", "--screen-name", action="store_true", dest="using_screen_names", help="Use this if passing screen names instead of user IDs") args = parser.parse_args() api = tweepy.API(get_oauth_handler()) logger.info("Looking up %d users", len(args.user_ids)) api_args = {} if args.using_screen_names: api_args["screen_names"] = args.user_ids else: api_args["user_ids"] = args.user_ids users = handle_rate_limit(api, "lookup_users", **api_args) for user in users: print(json.dumps(user._json)) logger.info("Found %d users", len(users))