์๋๋ ์ ์ฒด์ฝ๋์ ๋๋ค.
from urllib.request import urlopen
from urllib.parse import quote_plus
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
#import pyautogui
baseURL = 'https://www.instagram.com/'
plusURL = input('์
๋ ฅ : ')
url = baseURL + quote_plus(baseURL)
#############################################๋ก๊ทธ์ธ
driver = webdriver.Chrome()
usr = "Test@insta.com"
pwd = "test01!"
driver.get("https://www.instagram.com/accounts/login/")
time.sleep(3)
elem = driver.find_element_by_name("username")
elem.send_keys(usr)
elem = driver.find_element_by_name("password")
elem.send_keys(pwd)
elem.send_keys(Keys.RETURN)
time.sleep(3)
##########################################์ฃผ์์ด๋
searchURL = 'https://www.instagram.com/explore/tags/'
url = searchURL + quote_plus(plusURL)
driver.get(url)
time.sleep(3)
# ํ์ด์คํ ๋ก ์ค์ ๋๋ฌ์ฃผ๋๊ฑฐ ํ ๋ คํ๋๋ฐ ์ํ๊ณ url์ฃผ์ ๋ฐ๊ฟ
# a1= pyautogui.locateCenterOnScreen('submit.PNG')
# pyautogui.moveTo(a1) #ํ๋ฉด ์บก์ณํ ๊ณณ ๊ฐ์ด๋ฐ๋ก ์ด๋
# pyautogui.doubleClickclick() #ํ๋ฒ ํด๋ฆญ
# time.sleep(1) #1์ด ๋๊ธฐ
html = driver.page_source #ํ์ด์ง ์์ค ๊ฐ์ ธ์ด.
soup = BeautifulSoup(html, "html.parser") #์นํ์ด์ง ๋ถ์.
insta = soup.select('.v1Nh3.kIKUG._bz0w')#ํด๋์ค๋ช
์ด v1Nh3์ธ ๊ฒ์ ์ ํํจ.
n= 1 #์๋ ์ฌ์ง์ ๋ชฉ์ ํ ๋ 1์ฉ ์ค๋ฅด๋ฉด์ ์ ์ฅํ ๋ ค๊ณ ์ค์ ํจ.
for i in insta : #์์ ์ ํํ ํด๋์ค๋ ๋ง๊ธฐ ๋๋ฌธ์ ๋ฐฐ์ด(list) ํํ์.
#print('https://www.instagram.com' + i.a['href']) # aํ๊ทธ์ href ๊ฐ
imgUrl = i.select_one('.KL4Bh').img['src'] #ํด๋์ค๋ช
์ด KL4Bh์ธ ๊ณณ์ imgํ๊ทธ์ src๋ฅผ ๊ฐ์ ธ์ด
with urlopen(imgUrl) as f : #๊ฐ์ ธ์จ ์ด๋ฏธ์ง ๋งํฌ๋ฅผ ์คํํจ. ์ด๊ฑธ f๋ผ ํจ.
# print(imgUrl)
with open('./skirr/' + plusURL + str(n)+ '.jpg', 'wb') as h : #write binary #ํด๋๋ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ผํจ.
img = f.read() #img ๋ผ๋ ๋ณ์๋ ์์ ๊ฐ์ ธ์จ ๋งํฌ๋ฅผ ์ฝ๋ ๊ฑฐ์.
h.write(img) #img ๋ณ์๋ฅผ ์์์ฒ๋ผ writeํจ.
n +=1 #์ ๋ชฉ1, ์ ๋ชฉ2 , ...
# print(imgUrl)
# print()
driver.close
sleep์ ์น ๋ก๋ฉ์๊ฐ ๊ณ ๋ คํด์ 3์ด๋ก ์ค์ ํ์๋ค.
์ธ์คํ ๊ฒ์์ ์ํด ์น์ฌ์ดํธ๋ฅผ ์ผ๋ฉด ๋ก๊ทธ์ธ ์ฐฝ์ด๋ฌ๋ค. ์ด์ ์๋ ๋ก๊ทธ์ธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด
driver.find_element_by_name์ ์ฌ์ฉํด ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ ๊ณณ์ ์ฐพ๊ณ
elem.send_keys๋ฅผ ์ฌ์ฉํด ๋ก๊ทธ์ธ์ ํ์๋ค.
๋ก๊ทธ์ธ์ ํ๋ฉด ๋๊ฐ์ง ๋ฌธ์ ๊ฐ ์๊ธด๋ค. ์ฒซ๋ฒ์งธ๋ก ์ด ์์ ์ฌ์ง์ฒ๋ผ ์ ํํด์ผํ๊ณ ,
์ด๋ ๊ฒ ์๋ฆผ์ค์ ์ ํ ๊ฑด์ง ์ค์ ํด์ผํ๋ค.
์ด ๋๊ฐ์ง๋ฅผ ํจ์คํ๊ณ ํ๊ทธ ๊ฒ์์ ํ๊ธฐ์ํด ๋ฐ๋ก
'https://www.instagram.com/explore/tags/'๋ก ์ด๋ํ ์ฃผ์๋ฅผ ์ค์ ํ๊ณ driver.get์ ํ์ฌ ํ์ด์ง ์ด๋์ ํ์๋ค.
์ฌ๊ธฐ์ ์ฌ์ง ํ๋์ฉ ์ ์ฅํ๊ธฐ์ํด ์ด ์ฌ์ง ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ํด๋์ค๋ช ์ ์ฐพ์
soup.select('.v1Nh3.kIKUG._bz0w')๋ฅผ ํ์๊ณ , ์ด๋ฅผ printํ์ฌ ์ด๋ฏธ์ง ์ฃผ์๋ฅผ ์ฐพ์๋ค. ์ด๋ฏธ์ง ์ฃผ์๋ KL4Bh ํด๋์ค์ ์๋ imgํ๊ทธ์ src์ด๋ ์ด๋ฅผ openํ์ฌ jpg๋ก ์ ์ฅํ์๋ค.
์ ์ฅํ ํด๋๋ ๋์๊ฐ๊ณ ์๋ ํ์ด์ฌ์ ๋๋ ํ ๋ฆฌ์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด ๋์ผ ์ฐพ๊ณ ์ ์ฅ์ด ๋์๋ค.
์ด๋ ๊ฒํ๋ฉด ์ฌ์ง๋ค์ ํฌ๋กค๋งํด ํด๋์ ์ ์ฅํ ์ ์๋ค.