Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/instagram-bot/main_3.py
5925 views
1
from auth import login, password
2
from selenium import webdriver
3
from selenium.webdriver.common.keys import Keys
4
from selenium.webdriver.common.by import By
5
import time, random
6
7
browser = None
8
9
10
def login_firefox_chrome(_browser, login, password):
11
global browser
12
if _browser == "Chrome":
13
browser = webdriver.Chrome()
14
else:
15
browser = webdriver.Firefox()
16
browser.implicitly_wait(5)
17
browser.get('https://www.instagram.com')
18
time.sleep(random.randrange(1, 2))
19
20
_login = browser.find_element(By.NAME, "username")
21
_login.clear()
22
_login.send_keys(login)
23
24
time.sleep(random.randrange(1, 2))
25
26
_password = browser.find_element(By.NAME, "password")
27
_password.clear()
28
_password.send_keys(password)
29
30
time.sleep(random.randrange(1, 2))
31
32
_password.send_keys(Keys.ENTER)
33
34
# _login_button = browser.find_element_by_css_selector('button[type="submit"]')
35
# _login_button.click()
36
37
38
def close_browser():
39
global browser
40
browser.close()
41
browser.quit()
42
43
44
def search_by_hashtag(hashtag):
45
global browser
46
browser.get(f"https://www.instagram.com/explore/tags/{hashtag}/")
47
48
for i in range(1,4):
49
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
50
time.sleep(random.randrange(2, 5))
51
52
hrefs = browser.find_elements_by_tag_name('a')
53
urls = [item.get_attribute('href') for item in hrefs if "/p/" in item.get_attribute('href')]
54
print(urls)
55
56
for url in urls:
57
browser.get(url)
58
time.sleep(random.randrange(2, 5))
59
like = browser.find_element(By.XPATH, "/html/body/div[1]/section/main/div/div[1]/article/div[3]/section[1]/span[1]/button")
60
like.click()
61
time.sleep(random.randrange(85, 105))
62
63
# for item in hrefs:
64
# href = item.get_attribute('href')
65
# if "/p/" in href:
66
# urls.append(href)
67
# print(href)
68
69
def likes_to_user(link_to_user):
70
global browser
71
browser.get(link_to_user)
72
num_posts = int(browser.find_element(By.XPATH, "/html/body/div[1]/section/main/div/header/section/ul/li[1]/span/span").text.replace(" ", ""))
73
num_full_pages = num_posts // 12
74
print(num_posts, num_full_pages)
75
76
#num_full_pages = 1
77
78
for i in range(0, num_full_pages):
79
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
80
time.sleep(random.randrange(3, 5))
81
82
hrefs = browser.find_elements_by_tag_name('a')
83
urls = [item.get_attribute('href') for item in hrefs if "/p/" in item.get_attribute('href')]
84
print(urls)
85
86
for url in urls:
87
browser.get(url)
88
time.sleep(random.randrange(2, 5))
89
like = browser.find_element(By.XPATH, "/html/body/div[1]/section/main/div/div[1]/article/div[3]/section[1]/span[1]/button")
90
like.click()
91
time.sleep(random.randrange(5, 10))
92
93
login_firefox_chrome("Chrome", login, password)
94
time.sleep(5)
95
#search_by_hashtag("lamborghini")
96
#likes_to_user("https://www.instagram.com/romanova_elizaveta1/")
97
likes_to_user("https://www.instagram.com/irina_velour/")
98
time.sleep(200)
99
close_browser()
100
101
102