class TestIgramscraper(unittest.TestCase): @classmethod def setUpClass(self): cwd = os.getcwd() session_folder = cwd + os.path.sep + 'sessions' + os.path.sep if username == None or password == None: self.instagram = Instagram() else: self.instagram = Instagram.with_credentials( username, password, session_folder) self.instagram.login() if user_agent != None: #set user agent pass @classmethod def tearDownClass(self): pass def test_get_account_by_username(self): account = self.instagram.get_account('kevin') self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier) def test_get_account_by_id(self): account = self.instagram.get_account_by_id(3) self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier)
class TestIgramscraper(unittest.TestCase): @classmethod def setUpClass(self): cwd = os.getcwd() session_folder = cwd + os.path.sep + 'sessions' + os.path.sep if username == None or password == None: self.instagram = Instagram() else: self.instagram = Instagram.with_credentials( username, password, session_folder) self.instagram.login() if user_agent != None: #TODO set user agent pass @classmethod def tearDownClass(self): pass def test_get_account_by_username(self): account = self.instagram.get_account('kevin') self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier) def test_get_account_by_id(self): account = self.instagram.get_account_by_id(3) self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier) def test_get_medias(self): medias = self.instagram.get_medias('kevin', 80) self.assertEqual(80, len(medias)) def test_get_hundred_medias(self): medias = self.instagram.get_medias('kevin', 100) self.assertEqual(100, len(medias)) def test_get_medias_by_tag(self): medias = self.instagram.get_medias_by_tag('youneverknow', 20) self.assertEqual(20, len(medias)) def test_get_medias_by_code(self): media = self.instagram.get_medias_by_code('BHaRdodBouH') self.assertEqual('kevin', media.owner.username) def test_get_media_by_url(self): media = self.instagram.get_media_by_url( 'https://www.instagram.com/p/BHaRdodBouH') self.assertEqual('kevin', media.owner.username)
class TestIgramscraper(unittest.TestCase): @classmethod def setUpClass(self): cwd = os.getcwd() session_folder = cwd + os.path.sep + 'sessions' + os.path.sep if username == None or password == None: self.instagram = Instagram() else: self.instagram = Instagram() self.instagram.with_credentials(username, password, session_folder) self.instagram.login() if user_agent != None: #TODO set user agent pass @classmethod def tearDownClass(self): pass def test_get_account_by_username(self): account = self.instagram.get_account('kevin') self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier) def test_get_account_by_id(self): account = self.instagram.get_account_by_id(3) self.assertEqual('kevin', account.username) self.assertEqual('3', account.identifier) def test_get_medias(self): medias = self.instagram.get_medias('kevin', 80) self.assertEqual(80, len(medias)) def test_get_hundred_medias(self): medias = self.instagram.get_medias('kevin', 100) self.assertEqual(100, len(medias)) def test_get_medias_by_tag(self): medias = self.instagram.get_medias_by_tag('youneverknow', 20) self.assertEqual(20, len(medias)) def test_get_medias_by_code(self): media = self.instagram.get_medias_by_code('BHaRdodBouH') self.assertEqual('kevin', media.owner.username) def test_get_media_by_url(self): media = self.instagram.get_media_by_url('https://www.instagram.com/p/BHaRdodBouH') self.assertEqual('kevin', media.owner.username) def test_get_account_by_id_with_invalid_numeric_id(self): # sys.maxsize is far larger than the greatest id so far and thus does not represent a valid account. try: self.instagram.get_account_by_id(sys.maxsize) except Exception as e: self.assertEqual(str(e), 'Failed to fetch account with given id') def test_get_location_top_medias_by_id(self): medias = self.instagram.get_current_top_medias_by_tag_name(1) self.assertEqual(9, len(medias)) def test_get_location_medias_by_id(self): medias = self.instagram.get_medias_by_location_id(1, 56) self.assertEqual(56, len(medias)) def test_get_location_by_id(self): location = self.instagram.get_location_by_id(1) self.assertEqual('Dog Patch Labs', location.name) def test_get_id_from_code(self): code = Media.get_code_from_id('1270593720437182847') self.assertEqual('BGiDkHAgBF_', code) code = Media.get_code_from_id('1270593720437182847_3') self.assertEqual('BGiDkHAgBF_', code) code = Media.get_code_from_id(1270593720437182847) self.assertEqual('BGiDkHAgBF_', code) def test_get_code_from_id(self): id = Media.get_id_from_code('BGiDkHAgBF_') self.assertEqual(1270593720437182847, id) def test_get_media_comments_by_code(self): comments = self.instagram.get_media_comments_by_code('BR5Njq1gKmB', 40) #TODO: check why returns less comments self.assertLessEqual(40, len(comments)) def test_get_username_by_id(self): username = self.instagram.get_username_by_id(3) self.assertEqual('kevin', username) def test_get_medias_by_user_id(self): medias = self.instagram.get_medias_by_user_id(3) self.assertEqual(12, len(medias))
def account_by_id(identifier: str, client: Instagram, config: dict, logger: logging.Logger) -> Account: return account_from_obj(client.get_account_by_id(identifier))
from igramscraper.instagram import Instagram instagram = Instagram() # authentication supported instagram.with_credentials('squeerssecretary', 'jfa6zk8r') instagram.login() #Getting an account by id account = instagram.get_account_by_id(3) # Available fields print('Account info:') print('Id: ', account.identifier) print('Username: '******'Full name: ', account.full_name) print('Biography: ', account.biography) print('Profile pic url: ', account.get_profile_pic_url_hd()) print('External Url: ', account.external_url) print('Number of published posts: ', account.media_count) print('Number of followers: ', account.followed_by_count) print('Number of follows: ', account.follows_count) print('Is private: ', account.is_private) print('Is verified: ', account.is_verified) # or simply for printing use print(account)
# every time sleep 30 sec +/- random # every 10 sleep 300 # if you get error, take a long nap from igramscraper.instagram import Instagram from random import randint from time import sleep instagram = Instagram() for i in range(len(unique)): try: if i % 10 == 0: account = instagram.get_account_by_id(unique[i]) idf = pd.DataFrame({ 'Id': [account.identifier], 'Username': [account.username], 'Full name': [account.full_name], 'Biography': [account.biography], 'Profile pic url': [account.get_profile_picture_url()], 'External Url': [account.external_url], 'Number of published posts': [account.media_count], 'Number of followers': [account.followed_by_count], 'Number of follows': [account.follows_count], 'Is private': [account.is_private], 'Is verified': [account.is_verified], }) idf.to_csv(r"/Users/yourname/insta_scrape//"+account.username+".csv") print(i) sleep(randint(2,10)+300) else: account = instagram.get_account_by_id(unique[i])