1. 로그인
- 로그인
import chromedriver_autoinstaller
from selenium import webdriver
# 크롬 드라이버 자동 설치 및 설정
driver = webdriver.Chrome()
driver.get('https://www.instagram.com')
# 크롬 드라이버 자동 설치 및 설정
driver = webdriver.Chrome()
driver.get('https://www.instagram.com')
# 로그인할 아이디와 비밀번호
id = '아이디'
pw = '비밀번호'
# 아이디 입력 필드 찾기
input_id = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[1]/div/label/input')
# 비밀번호 입력 필드 찾기
input_pw = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
# 아이디 입력
input_id.send_keys(id)
# 비밀번호 입력
input_pw.send_keys(pw)
# 로그인 버튼 클릭
driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[3]/button').click()
2. 해시태그 검색
- 해시태그 검색(로그인 된 상태)
3. 스크롤 내리기
- 스크롤 내리기
import time
#1: 스크롤 몇번 내리기. 즉 1는 한번 내리고, 2는 2번 내리고 n는 n번 내리고
for _ in range(5):
# scrollTo(0, document.body.scrollHeigh): 시작 부터 끝까지
driver.execute_script('window.scrollTo(0, document.body.scrollHeight)')
#time.sleep(5)
4. 원하는 사진 클릭
- 원하는 사진 클릭 하기
hashtag = '피자'
url = f'https://www.instagram.com/explore/tags/{hashtag}/'
driver.get(url)
xpath = '/html/body/div[2]/div/div/div[2]/div/div/div[1]/div[1]/div[2]/section/main/article/div/div[2]/div/div[1]/div[3]/a'
driver.find_element('xpath', xpath).click()
5. 좋아요 클릭 및 댓글달기
- 좋아요 클릭 및 댓글 달기
like_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[1]/span[1]/div/div'
driver.find_element('xpath', like_xpath).click()
driver.find_element('xpath', like_xpath).click()
reply_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[3]/div/form/div/textarea'
driver.find_element('xpath', reply_xpath).click()
driver.find_element('xpath', reply_xpath).send_keys('좋은 정보 감사합니다!')
6. 함수 리팩토링
- 함수 리팩토링
# 로그인
def login(id, pw):
input_id = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[1]/div/label/input')
input_pw = driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[2]/div/label/input')
input_id.send_keys(id)
input_pw.send_keys(pw)
driver.find_element('xpath', '/html/body/div[2]/div/div/div[2]/div/div/div[1]/section/main/article/div[2]/div[1]/div[2]/form/div/div[3]/button').click()
# 해시태그 검색
def search(hashtag):
url = f'https://www.instagram.com/explore/tags/{hashtag}/'
driver.get(url)
# 좋아요 및 댓글달기
def like_and_comment(comment):
xpath = '/html/body/div[2]/div/div/div[2]/div/div/div[1]/div[1]/div[2]/section/main/article/div/div[2]/div/div[1]/div[3]/a'
driver.find_element('xpath', xpath).click()
reply_xpath = '/html/body/div[8]/div[1]/div/div[3]/div/div/div/div/div[2]/div/article/div/div[2]/div/div/div[2]/section[3]/div/form/div/textarea'
driver.find_element('xpath', reply_xpath).click()
driver.find_element('xpath', reply_xpath).send_keys('좋은 정보 감사합니다!')
# 실행
driver = webdriver.Chrome()
url = 'https://www.instagram.com'
driver.get(url)
driver.implicitly_wait)(3)
id = '아이디'
pw = '비밀번호'
hashtag = '사과'
login(id, pw)
time.sleep(4)
like_and_comment('안녕하세요! 잘 보고 갑니다")
'데이터분석 > 크롤링' 카테고리의 다른 글
04. 이미지 수집 (0) | 2024.05.21 |
---|---|
02. Selenium, Xpath (네이버웹툰 크롤링) (0) | 2024.05.21 |
01. 크롤링(Crawling) (0) | 2024.05.20 |