class TestLogin(unittest.TestCase): def setUp(self): self.looter = ProfileLooter(USERNAME, template="test") self.destfs = fs.memoryfs.MemoryFS() def tearDown(self): self.destfs.close() def test_login(self): self.assertFalse(self.looter.logged_in()) self.assertRaises(RuntimeError, self.looter.medias) self.assertFalse(self.looter._cachefs.exists(self.looter._COOKIE_FILE)) try: self.looter.login(USERNAME, PASSWORD) self.assertTrue(self.looter.logged_in()) self.assertTrue( self.looter._cachefs.exists(self.looter._COOKIE_FILE)) self.assertTrue(next(self.looter.medias())) finally: self.looter.logout() self.assertFalse( self.looter._cachefs.exists(self.looter._COOKIE_FILE)) def test_download(self): try: self.looter.login(USERNAME, PASSWORD) self.looter.download(self.destfs) self.assertTrue(self.destfs.exists('test.jpg')) self.assertEqual(self.destfs.getbytes('test.jpg')[6:10], b'JFIF') finally: self.looter.logout()
def scrapeVideos(username = "", password = "", output_folder = "", days = 1): print("Starting Scraping") L = instaloader.Instaloader() # Login or load session for loader L.login(username, password) profile = instaloader.Profile.from_username(L.context, username) following = profile.get_followees() print(following) for profile in following: acc = profile.username looter = ProfileLooter(acc, videos_only=True, template="{id}-{username}-{width}-{height}") if not looter.logged_in(): looter.login(username, password) print("Scraping From Account: " + acc) today = datetime.date.today() timeframe = (today, today - dateutil.relativedelta.relativedelta(days=days)) numDowloaded = looter.download(output_folder, media_count=30, timeframe=timeframe) print("Downloaded " + str(numDowloaded) + " videos successfully") print("")
class TestLogin(unittest.TestCase): @classmethod def setUpClass(cls): cls.session = requests.Session() InstaLooter._user_agent = cls.session.headers["User-Agent"] @classmethod def tearDownClass(cls): cls.session.close() del InstaLooter._user_agent def setUp(self): self.looter = ProfileLooter(USERNAME, template="test") self.destfs = fs.memoryfs.MemoryFS() def tearDown(self): self.destfs.close() def test_login(self): self.assertFalse(self.looter.logged_in()) self.assertRaises(RuntimeError, self.looter.medias) self.assertFalse(self.looter._cachefs.exists(self.looter._COOKIE_FILE)) try: self.looter.login(USERNAME, PASSWORD) self.assertTrue(self.looter.logged_in()) self.assertTrue( self.looter._cachefs.exists(self.looter._COOKIE_FILE)) self.assertTrue(next(self.looter.medias())) finally: self.looter.logout() self.assertFalse( self.looter._cachefs.exists(self.looter._COOKIE_FILE)) def test_download(self): try: self.looter.login(USERNAME, PASSWORD) self.looter.download(self.destfs) self.assertTrue(self.destfs.exists('test.jpg')) self.assertEqual(self.destfs.getbytes('test.jpg')[6:10], b'JFIF') finally: self.looter.logout()