Advertisement
Guest User

Untitled

a guest
Jan 11th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. from selenium import webdriver
  2. from selenium.webdriver.common.keys import Keys
  3. import time
  4. import random
  5. import sys
  6.  
  7.  
  8. # RUN PROGRAM: F:\Programming\Python\python.exe F:\Programming\Programs\IGbotFIN.py
  9.  
  10.  
  11. def print_same_line(text):
  12. sys.stdout.write('\r')
  13. sys.stdout.flush()
  14. sys.stdout.write(text)
  15. sys.stdout.flush()
  16.  
  17.  
  18. class InstagramBot:
  19.  
  20. def __init__(self, username, password):
  21. self.username = username
  22. self.password = password
  23. self.driver = webdriver.Firefox()
  24.  
  25. def closeBrowser(self):
  26. self.driver.close()
  27.  
  28. def login(self):
  29. driver = self.driver
  30. driver.get("https://www.instagram.com/")
  31. time.sleep(2)
  32. login_button = driver.find_element_by_xpath("//a[@href='/accounts/login/?source=auth_switcher']")
  33. login_button.click()
  34. time.sleep(2)
  35. user_name_elem = driver.find_element_by_xpath("//input[@name='username']")
  36. user_name_elem.clear()
  37. user_name_elem.send_keys(self.username)
  38. passworword_elem = driver.find_element_by_xpath("//input[@name='password']")
  39. passworword_elem.clear()
  40. passworword_elem.send_keys(self.password)
  41. passworword_elem.send_keys(Keys.RETURN)
  42. time.sleep(2)
  43.  
  44.  
  45. def like_photo(self, hashtag):
  46. driver = self.driver
  47. driver.get("https://www.instagram.com/explore/tags/" + hashtag + "/")
  48. time.sleep(2)
  49.  
  50. # gathering photos
  51. pic_hrefs = []
  52. for i in range(1, 7):
  53. try:
  54. driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  55. time.sleep(2)
  56. # get tags
  57. hrefs_in_view = driver.find_elements_by_tag_name('a')
  58. # finding relevant hrefs
  59. hrefs_in_view = [elem.get_attribute('href') for elem in hrefs_in_view
  60. if '.com/p/' in elem.get_attribute('href')]
  61. # building list of unique photos
  62. [pic_hrefs.append(href) for href in hrefs_in_view if href not in pic_hrefs]
  63. # print("Check: pic href length " + str(len(pic_hrefs)))
  64. except Exception:
  65. continue
  66.  
  67. # Liking photos
  68. unique_photos = len(pic_hrefs)
  69. for pic_href in pic_hrefs:
  70. driver.get(pic_href)
  71. time.sleep(2)
  72. driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
  73. try:
  74. time.sleep(random.randint(3, 6))
  75. like_button = driver.find_element_by_xpath('//span[@aria-label="Like"]').click()
  76. like_button().click()
  77. for second in reversed(range(0, random.randint(18, 28))):
  78. print_same_line("#" + hashtag + ': unique photos left: ' + str(unique_photos)
  79. + " | Sleeping " + str(second))
  80. time.sleep(1)
  81. except Exception as e:
  82. time.sleep(2)
  83. pass
  84. unique_photos -= 1
  85.  
  86.  
  87. #FOLLOW PROFILE
  88. try:
  89. time.sleep(random.randint(2, 7))
  90. followProfile = driver.find_element_by_xpath("//*[text()='Follow']")
  91. followProfile.click()
  92. time.sleep(2)
  93. except:
  94. pass
  95.  
  96. # Commenting
  97. try:
  98. time.sleep(random.randint(3, 6))
  99. comment_box = driver.find_element_by_css_selector("textarea.Ypffh")
  100. comment_box.click()
  101. time.sleep(random.randint(1, 3))
  102. comment_box.clear()
  103. time.sleep(random.randint(1, 3))
  104. comment_box.send_keys("Nice one!")
  105. comment_box.send_keys(Keys.RETURN)
  106. except:
  107. pass
  108.  
  109. time.sleep(2)
  110.  
  111.  
  112. username = ""
  113. password = ""
  114.  
  115. ig = InstagramBot(username, password)
  116. ig.login()
  117.  
  118. hashtags = ['clothing', 'fashion', 'streetwear', 'street', 'streetFashion',
  119. 'mensfashion', 'malemodel', 'mensclothing', 'mensstreatwear', 'trapMusic', 'trap', 'rapper']
  120. #hashtags = ['producer', 'producing', 'music', 'trap', 'trapMusic',
  121. #'beatmaker', 'beats', 'rap', 'freestyle']
  122.  
  123. while True:
  124. try:
  125. # Choose a random tag from the list of tags
  126. tag = random.choice(hashtags)
  127. ig.like_photo(tag)
  128. ig.follow_people(tag)
  129. except Exception:
  130. ig.closeBrowser()
  131. time.sleep(30)
  132. ig = InstagramBot(username, password)
  133. ig.login()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement