Last active
          July 19, 2025 05:32 
        
      - 
      
- 
        Save fnneves/14fd2e05a1e39e67bae5a5ccf50c9975 to your computer and use it in GitHub Desktop. 
Revisions
- 
        fnneves renamed this gist Dec 5, 2018 . 1 changed file with 0 additions and 0 deletions.There are no files selected for viewingFile renamed without changes.
- 
        fnneves created this gist Dec 5, 2018 .There are no files selected for viewingThis file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,82 @@ hashtag_list = ['travelblog', 'travelblogger', 'traveler'] # prev_user_list = [] - if it's the first time you run it, use this line and comment the two below prev_user_list = pd.read_csv('20181203-224633_users_followed_list.csv', delimiter=',').iloc[:,1:2] # useful to build a user log prev_user_list = list(prev_user_list['0']) new_followed = [] tag = -1 followed = 0 likes = 0 comments = 0 for hashtag in hashtag_list: tag += 1 webdriver.get('https://www.instagram.com/explore/tags/'+ hashtag_list[tag] + '/') sleep(5) first_thumbnail = webdriver.find_element_by_xpath('//*[@id="react-root"]/section/main/article/div[1]/div/div/div[1]/div[1]/a/div') first_thumbnail.click() sleep(randint(1,2)) try: for x in range(1,200): username = webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[1]/h2/a').text if username not in prev_user_list: # If we already follow, do not unfollow if webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[2]/button').text == 'Follow': webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/header/div[2]/div[1]/div[2]/button').click() new_followed.append(username) followed += 1 # Liking the picture button_like = webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/div[2]/section[1]/span[1]/button/span') button_like.click() likes += 1 sleep(randint(18,25)) # Comments and tracker comm_prob = randint(1,10) print('{}_{}: {}'.format(hashtag, x,comm_prob)) if comm_prob > 7: comments += 1 webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/div[2]/section[1]/span[2]/button/span').click() comment_box = webdriver.find_element_by_xpath('/html/body/div[3]/div/div[2]/div/article/div[2]/section[3]/div/form/textarea') if (comm_prob < 7): comment_box.send_keys('Really cool!') sleep(1) elif (comm_prob > 6) and (comm_prob < 9): comment_box.send_keys('Nice work :)') sleep(1) elif comm_prob == 9: comment_box.send_keys('Nice gallery!!') sleep(1) elif comm_prob == 10: comment_box.send_keys('So cool! :)') sleep(1) # Enter to post comment comment_box.send_keys(Keys.ENTER) sleep(randint(22,28)) # Next picture webdriver.find_element_by_link_text('Next').click() sleep(randint(25,29)) else: webdriver.find_element_by_link_text('Next').click() sleep(randint(20,26)) # some hashtag stops refreshing photos (it may happen sometimes), it continues to the next except: continue for n in range(0,len(new_followed)): prev_user_list.append(new_followed[n]) updated_user_df = pd.DataFrame(prev_user_list) updated_user_df.to_csv('{}_users_followed_list.csv'.format(strftime("%Y%m%d-%H%M%S"))) print('Liked {} photos.'.format(likes)) print('Commented {} photos.'.format(comments)) print('Followed {} new people.'.format(followed))