일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 코딩테스트
- 데이터시각화
- 선그래프
- 가상환경
- 노마드코딩
- aws jupyter notebook
- pandas
- dataframe
- programmers
- openCV
- 파이썬
- python
- 알고리즘스터디
- 알고리즘
- 프로그래머스
- Stack
- 알고리즘 스터디
- Join
- 자료구조
- Algorithm
- 백준
- queue
- String Method
- MySQL
- Selenium
- 정보처리기사 c언어
- Matplotlib
- type hint
- NumPy
- javascript
- Today
- Total
목록Python/Web Scraping (5)
조금씩 꾸준히 완성을 향해
Wait till Load Webpage(로딩 대기) 브라우저에서 해당 웹 페이지의 요소들을 로드하는데 걸리는 시간을 대기하는 것을 말한다. 웹 페이지가 로드되기도 전에 element가 존재하지 않는다는 error가 뜨는 걸 방지하기 위함이다. ▶ Implicit Waits(암묵적 대기) driver.implicitly_wait(secs) 브라우저에서 사용되는 엔진 자체에서 파싱을 기다려 주는 selenium 자체의 특수한 메소드이다. 여기서 중요한 부분은 지정값이 최대시간이라는 사실이다. 즉 파싱이 완료되면 코드가 즉시 샐행이 되고, 늦더라도 최대 n초까지는 기다려 준다는 뜻이다. ▶ Explicit Waits(명시적 대기) time.sleep(secs) 프로세스 자체를 지정한 시간동안 기다려 주는 역..
한국관광공사 홈페이지에서 여행정보를 가져오는 와중에 예기치 못한 에러를 마주했다. selenium 사용 중에 click() 함수가 작동을 하지 않는 것이었다. 원래 이렇게 사이트에 봄여행을 검색해서 특정 페이지까지 텍스트 정보를 긁어오는 게 목적이었다. 여기 보이는 이 버튼을 클릭해서 이동하는 코드를 짜고 있는데, driver.find_element_by_xpath(f'//*[@class="page_box"]/*[@id={i}]').click() 이 코드에서 자꾸 에러가 떴다. ElementClickInterceptedException 이라고 한다. 분명 id 값을 제대로 가져온 게 맞고, 다른 버튼들은 또 잘 작동하니 어리둥절.... 구글링 해서 결국 해결책을 알아냈다. element가 HTML 상에는..
selenium을 사용해서 네이버 로그인을 해보자. from selenium import webdriver import time # webdriver 경로 지정 driver = webdriver.Chrome("./chromedriver.exe") time.sleep(3) #시간 지연 3초 주기 #1. 네이버 이동 driver.get("http://naver.com") #2. 로그인 페이지로 이동 elem = driver.find_element_by_class_name("link_login") elem.click() time.sleep(3) 일단 네이버로 이동해서 로그인 페이지까지 갔다. 아이디, 비밀번호를 입력하려는데 문제가 하나 생겨버린다. driver.find_element_by_id('id').se..
BeautifulSoup에 대한 기본적인 사용법을 정리해 보겠다. ▶ 기본 셋팅 #라이브러리 import import requests from bs4 import BeautifulSoup # 네이버 웹툰 url url = "https://comic.naver.com/index" res = requests.get(url) res.raise_for_status() # html 문서를 가져와서 lxml parser 혹은 html parser를 통해서 soup 객체로 생성 soup = BeautifulSoup(res.text, 'lxml') soup = BeautifulSoup(res.text, 'html.parser') ▶ 태그명 바로 가져오기 print(soup.title.get_text()) # title..
requests 는 웹사이트 정보를 가져올 때 쓰이는 python library이다. 웹 스크래핑/크롤링에 아주 유용하게 쓸 수 있다. ▶ 기본 세팅 import requests res = requests.get("http://google.com") # url 정보 저장 res.raise_for_status() # 문제가 생겼을 경우 바로 에러를 내고 프로그램을 종료 먼저 설치 후 import 해 주고, 정보를 가져올 url를 지정해 준다. 그리고 에러를 대비하는 코드를 추가한다. print("응답코드", res.status_code) # 200이면 정상 사실 이렇게 status_code를 찍어보면 에러가 뜨는지 안뜨는지 확인을 할 수 있다. if res.status_code == requests.cod..