inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

파이썬 무료 강의 (활용편3) - 웹 스크래핑 (5시간)

Selenium 활용 1-1 (네이버 항공권)

네이버 항공권 관련 제가 작성한 코드 조심스럽게 공유해드립니다.ㅜ

2525

박재현

작성한 질문수 4

7

안녕하세요

먼저 좋은 강의 해주시는 나도코딩님께 감사드립니다.

 

이전에 나름 정성들여 글을 작성했는데, 확인이 안돼서 다시 작성해봅니다.

 

제가 강의를 보고있는 2023년 1월 19일과 강의날인 2020년 8월과 네이버 항공권 인터페이스가 많이 상이하고, 셀레니움과 파이썬 버전이 달라 저의경우 아래와 같이 코드를 작성했습니다.

 

다른분들께 도움이 되었으면 좋겠습니다.

 

현재 저의 환경의 경우 python버전 3.10.7 버전이고 selenium또한 강의때 사용하신것 보다 더 높은 것으로 보입니다.

 

현재 제 경우와 강의내용과 상이한 부분은 아래와 같습니다.

 

저와같이 초반에 고생하시는 분들께 조금이나마 도움이 되었으면 좋겠습니다.

감사합니다.

 

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

URL = "https://flight.naver.com/"


def compute_date(dates, target) -> list:
    print("compute entire date information from current month to limit")
    return [date for date in dates if date.text == str(target)]


browser = webdriver.Chrome()
# browser.maximize_window()

browser.get(URL)
time.sleep(1)

# remove AD popup
find = browser.find_elements(By.CLASS_NAME, "anchor")
for f in find:
    if f.get_attribute("title") == "지금 바로 혜택 확인하기":
        browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[9]/div/div[2]/button[1]').click()
        print("remove pop up")
        break

# push 가는 날 button also delay 1 sec is necessary, if don't use this, can not read date information.
browser.find_element(By.XPATH, '//*[@id="__next"]/div/div[1]/div[4]/div/div/div[2]/div[2]/button[1]').click()
time.sleep(1)

# read date information and push 25 day
dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", "."))
compute_date(dates, 25)[0].click()
# read date information and push 30 day
dates = browser.find_elements(By.CLASS_NAME, "sc-evZas dDVwEk num".replace(" ", "."))
compute_date(dates, 30)[0].click()


while True:
    pass

selenium python 웹-크롤링 웹 스크래핑

답변 2

0

우성

와~ 진짜 감사합니다. 바뀐 내용에대해서 어떤 조언도 구할 수 없어서 강의수강 포기할까 고민하고 있었는데 이렇게 알려주셔서 정말 감사합니다.

0

이상원

정말 고맙습니다. 셀레니움 엘레멘트 선택부터 다 달라져서 막혀서 어려웠습니다. 강의 업데이트나 질문이 없어 이상하다 했거든요

0

박재현

도움이 되셨다고하니 제가 더 감사합니다 :)

혹 막히시는 부분이 있으시면 가감없이 질문주시면 제가 아는 지식선에서는 도움드릴 수 있습니다.

즐거운 코딩 되셨으면 좋겠습니다.

감사합니다 :)

selenium 업그레이드됨... 문법도 바뀜

1

286

1

2024.08.28 수요일 기준 날씨 정보 가져오기 소스코드입니다 (참고하세요 : ) )

0

230

1

24년, 부동산 퀴즈 코드입니다. 참고하세요!!

0

177

1

git hub에 push할때 user-agent가 노출되도 상관이 없나요 ?

0

185

1

selenium 관련 web push notification 제어 질문

0

568

1

print(soup.a) 태그 값이 None으로 나옵니다.

0

1177

4

soup으로 검색한 버튼 또는 text를 click할때 어떻게 하나요 ?

1

3561

1

웹툰 사이트 body 안에가 안불러져옵니다.

0

677

2

네이버 웹툰을 활용한 BeautifulSoup 강좌에서 인터페이스가 달라졌습나다.

0

993

1

구글 무비 강좌에서요

0

399

0

네이버 IT뉴스 화면 requets.get 에러가 발생합니다ㅜ

0

432

0

23년 2월 7일, 다음 부동산 화면이 다름

0

403

0

bs4 활용 2-1 질문합니다.

0

504

2

csv파일 깨짐

0

313

0

url 에러? (\UXXXXXXXX escape)

0

310

0

네이버 쇼핑으로 하면 왜 결과가 안 뜰까요?

0

380

0

쿠팡대신 네이버 쇼핑에서하는데, 5개 아이템만 나옵니다.

0

366

0

쿠팡 requests에 오류가 생기네요

0

2905

1

URL 문제

0

389

0

request 설치

0

315

0

from selenium import webdriver ?

0

348

1

네이버웹툰 랭크가 안불러져요...;;

0

298

0

안녕하세요 에러문의드려요

0

215

0

안녕하세요 오류해결부탁드립니다

0

336

0