-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinsta_scraper.py
45 lines (34 loc) · 1.46 KB
/
insta_scraper.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import instaloader
import numpy as np
class InstagramScraper:
def __init__(self, username, password):
self.username = username
self.password = password
self.profile = None
self.followers_list = []
self.following_list = []
def create_session(self):
L = instaloader.Instaloader()
L.login(self.username, self.password) # Login or load session
self.profile = instaloader.Profile.from_username(L.context, self.username) # Obtain profile metadata
def scrape_followers(self):
for follower in self.profile.get_followers():
self.followers_list.append(follower.username)
def scrape_following(self):
for followee in self.profile.get_followees():
self.following_list.append(followee.username)
def generate_unfollowers_list(self):
unfollow_list = np.setdiff1d(self.following_list, self.followers_list) # unfollow people who are only in following list and not in followers list
ydfb_list = []
for a in self.followers_list:
if a not in self.following_list:
ydfb_list.append(a)
filename = "user_list.txt"
file = open(filename, "w")
file.write("\n\nTHEY DON'T FOLLOW BACK\n\n")
for person in unfollow_list:
file.write(person + "\n")
file.write("\n\nYOU DONT FOLLOW BACK\n\n")
for person in ydfb_list:
file.write(person + "\n")
file.close()