프로그래머스 152

Web Scraping 기초 3-2. 브라우저 자동화하기, Selenium

강의 "Selenium"은 웹 브라우저를 조작할 수 있는 자동화 프레임워크 입니다. "Web Driver"는 웹 브라우저를 제어할 수 있는 자동화 프레임워크 입니다. %pip install selenium %pip install webdriver-manager # selenium으로부터 webdriver 모듈을 불러옵니다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager # Chrome 브라우저를 켜봅시다. driver = webdriver.Chrome(service=Service(ChromeDrive..

Web Scraping 기초 3-1. 동적 웹 페이지와의 만남

강의 웹 페이지 구분 정적(Static) 웹 사이트 HTML 내용 고정 HTML 문서 완전하게 응답 동적(Dynamic) 웹 사이트 HTML 내용 변화 응답 후 HTML 렌더링 지연시간 존재 데이터 처리 구분 동기 처리 요청에 따른 응답 기다림 렌더링 후, 데이터 처리 → 로딩 문제 없음 비동기 처리 요청에 따른 응답을 기다리지 않음 렌더링 후, 우선 응답 후 데이터 처리 → 데이터 완전하지 않은 경우 발생 requests 활용 시 문제점 동적 웹사이트 적용 어려움 → 임의로 시간 지연 후, 데이터 처리가 끝난 정보를 가져옴 UI 상호작용 어려움 → Selenium을 활용하여 웹 브라우저의 event 프로그래밍 from selenium import webdriver driver = wevdriver.Ch..

Web Scraping 기초 2-5. 원하는 요소 가져오기 ||

강의 "페이지네이션"(Pagination)은 많은 정보를 인덱스로 구분하는 기법 입니다. # 다음 User-Agent를 추가해봅시다. user_agent = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.97 Safari/537.36"} # 필요한 라이브러리를 불러온 후, 요청을 진행해봅시다. import requests from bs4 import BeautifulSoup # Pagination이 되어있는 질문 리스트의 제목을 모두 가져와봅시다. # 과도한 요청을 방지하기 위해 1초마다 요청을 보내봅시다. import time for i..

Web Scraping 기초 2-4. HTML의 Locator로 원하는 요소 찾기

강의 같은 태그를 사용하는 경우 원하는 요소만을 찾기 위해 "Locator"를 이용합니다. id : 하나의 고유 태그를 가리키는 라벨. 중복 불가 class : 여러 태그를 묶는 라벨 # 스크래핑에 필요한 라이브러리를 불러와봅시다. import requests from bs4 import BeautifulSoup ## 또 다른 연습 사이트를 이용해봅시다. # http://example.python-scraping.com/ res = requests.get("http://example.python-scraping.com/") soup = BeautifulSoup(res.text, "html.parser") ## id 없이 div 태그를 찾아봅시다. soup.find_all("div") ## id가 resu..

Web Scraping 기초 2-3. 원하는 요소 가져오기 |

강의 책 이름 모으기 - 사이트에 있는 책들의 이름 정보 스크래핑하기 http://books.toscrape.com/catalogue/category/books/travel_2/index.html # 스크래핑에 필요한 라이브러리를 불러와봅시다. import requests from bs4 import BeautifulSoup # 예시 사이트에 요청을 진행하고, 응답을 바탕으로 BeautifulSoup 객체를 만들어봅시다. res = requests.get("http://books.toscrape.com/catalogue/category/books/travel_2/index.html") soup = BeautifulSoup(res.text, "html.parser") # 태그에 해당하는 요소를 하나 찾아봅..

Web Scraping 기초 2-2. HTML을 분석해주는 BeautifulSoup

강의 "BeautifulSoup" 라이브러리는 Parser를 사용할 수 있도록 도와주는 라이브러리 입니다. %pip install bs4 # www.example.com 사이트를 요청한 후 응답 받아보기 import requests res = requests.get("http://www.example.com") res.text # BeautifulSoup4 - bs4를 불러와봅시다. from bs4 import BeautifulSoup # BeautifulSoup객체를 만들어봅시다. # 첫번째 인자로는 response의 body를 텍스트로 전달합니다. # 두번째 인자로는 "html"로 분석한다는 것을 명시해줍니다. soup = BeautifulSoup(res.text, "html.parser") # 객체..