이번 시간에는 번역 자동화에 이어 인터파크 투어 크롤링을 배워보았다.
형식은 이전과 비슷하다.
[3주차 총정리] Selenium으로 브라우저 제어 자동화하기
Selenium이란? - 웹개발자들이 원래 사용하는 용도로, 주로 웹브라우저 호환성 문제 점검할 때 사용된다. - 스크래핑(크롤링) 용도로는 브라우저 제어를 자동화하는 용도로 사용 - HTML코드와 request.g
lafgh.tistory.com
다만, 이번 시간에는 추가로 배운 코드들을 소개하겠다.
1. find_element_by_
driver.find_element_by_id('SearchGNBText').send_keys('괌')
driver.find_element_by_class_name('search-btn').click() # 검색버튼
우리는 태그를 불러올 때 두 가지 방법을 쓸 수 있다.
1) Selenium을 써서 driver.find_elements_ 함수를 쓰는 방법 - .text로 텍스트만 꺼내기
2) BeautifulSoup(driver.page_source, 'html.parser') 함수를 쓰는 방법 - .get_text()로 텍스트만 꺼내기
service = Service(executable_path=ChromeDriverManager().install())
driver = webdriver.Chrome(service=service)
driver.get('http://tour.interpark.com/')
# 1)
driver.page_source
driver.find_elements_by_class_name('infoTitle')[0].text
# 2)
web_page = BeautifulSoup(driver.page_source, 'html.parser')
web_page.find_all('h5', {'class':'infoTitle'})[0].get_text()
실제로 위의 두 코드의 결과는 동일하다.
여러 페이지의 정보를 찾아오도록 하는 함수도 배워보았다.
이번에는 간단하게 Post 요청에 대해 맛보기하는 시간이었다.
페이지를 1page, 2page, ... 넘겨도 URL이 바뀌지 않는 경우에는 Post 요청을 보낸 것이다.
우리는 이러한 경우에는 full_xpath를 사용해서 넘어가도록 할 수 있다.
물론 CSS selector도 할 수 있지만, 이는 아직 너무 어렵기 때문에 우리는 Copy에서 Copy full Xpath로 받아오도록 하자.
우선, 더 많은 관광지 보기 페이지로 넘어가도록 클릭하도록 하는 함수이다.
driver.find_element_by_class_name('moreBtn').click()
xpath로 페이지가 넘어가도록 하는 함수이다.
마지막 li[2],[3]만 바뀌기 때문에 이를 for문으로 자동으로 돌려줄 수 있다.
driver.find_element_by_xpath('/html/body/div[3]/div/div[1]/div[2]/div[4]/div[3]/ul/li[2]').click()
driver.find_element_by_xpath('/html/body/div[3]/div/div[1]/div[2]/div[4]/div[3]/ul/li[3]').click()
다음 시간에 Post 요청을 더 자세히 배울 예정이다.
그리고 중요한 것은 가상브라우저 사용이 끝났다면, X로 브라우저를 꺼도 소용이 없다.
반드시 코드로 종료해주어야 한다.
driver.close()
driver.quit()'멋쟁이 사자처럼 AI SCHOOL 5기 > Today I Learned' 카테고리의 다른 글
| [3주차 총정리] Post Request 기반의 웹사이트 크롤링 (서울상권분석서비스) (0) | 2022.03.29 |
|---|---|
| [3주차 총정리] Wadis 마감 상품 재고 체크 & 메일 발송 크롤링 (0) | 2022.03.29 |
| [3주차 총정리] Selenium으로 브라우저 제어 자동화하기 (0) | 2022.03.29 |
| [3주차 총정리] Okt 텍스트 분석 후에 Word Cloud 제작하기 (0) | 2022.03.29 |
| [3주차 총정리] Web Scrapping (네이버 여러 뉴스 기사) (0) | 2022.03.28 |