yeo72.devlog

[Python] 프탁봇 - 이미지 소스 출력하기 본문

Project

[Python] 프탁봇 - 이미지 소스 출력하기

짱이08 2022. 2. 20. 23:26

프라이탁 봇을 만들기 위해 파이썬 크롤링 하는 방법을 배웠다

파이썬에 대해 아무것도 모르기때문에 유튜브에서 아주 기초적인 프로그램을 먼저 만들어봤다

 

 

👉식단을 알려주는 텔레그램 봇 만들기

https://www.youtube.com/watch?v=zxzRlIutDu8 

 

아주 쉽게 설명해줘서 찬찬히 따라해 보니 바로 만들어져서 프탁봇 만들기 돌입

 

그러나 프탁봇은 따로 강의가 있는게 아니기때문에 스텝 하나 나가기가 하늘의 별따기ㅜ

일단 관련 블로그를 두개 찾아서 따라하는데 잘 안됐다

 

아마 프라이탁 측에서 자주 소스코드를 바꾸나봄?

일단 프라이탁은 랜덤으로 업데이트 되면 아이템 리스트에 갑자기 새로 업데이트된 아이템이 주르륵 생김

그래서 기존의 이미지 코드를 저장하고, 새로운 이미지 코드가 생기면 업데이트 된 것이기 때문에 프탁봇으로 알림을 주면 되는데

 

기존의 이미지 코드를 어케 저장하는지가 문제였다

 

정확히는 이 태그를 어떻게 지정하는지를 몰라서 하루 꽉채워 고민했음ㅜㅜ

개발자 도구가서 selector복사하고 하니까 바로 떠서 해결한줄알았으나 출력시 딱 첫번째 상품의 이미지 태그만 나오는거,,ㅋㅋㅋㅋ

#block-freitag-content > article > section:nth-child(2) > div > div > div > div > div:nth-child(2) > div.container.mx-auto > div > div > div > div.flex.flex-wrap > div:nth-child(n) > div > picture > img

 

그래서 진짜 눈이 떨어져라 확인하니까 저기 빨간색 해놓은 부분만 2,3,4,5일케 달라서 n으로 하니까 해결!

요렇게 뭉태기로 출력된다!

힘들었다,,,,

 

다음은 새로운 코드 비교해서 알람울리는 메서드를 만들고 봇까지 만들어서 찾아오겠습니다✋

 

👇아래는 제가 작성한 코드입니다

from selenium import webdriver
from selenium.webdriver.common.keys import Keys ##셀레니움 임포트

driver = webdriver.Chrome()

driver.get("https://www.freitag.ch/en/f41") ## 자동으로 들어갈 주소 입력

driver.find_element_by_class_name('dismiss-cookies').click()


new_items = []
for item in driver.find_elements_by_css_selector('#block-freitag-content > article > section:nth-child(2) > div > div > div > div > div:nth-child(2) > div.container.mx-auto > div > div > div > div.flex.flex-wrap > div:nth-child(n) div > picture > img'):
    image_src = item.get_attribute('src')

    new_items.append(image_src)
 
print(new_items)

 

 

개초보 + 얼레벌레 코딩이기때문에 틀리거나 고칠 항목이 있다면 말씀해주세욥!