본문 바로가기

DATA/[ 모각코+ 12월 과정 ] 웹 크롤링15

[ 모각코+ 15일차 ] XPath 활용하기 [ XPath ] XPath는 id, class에 구애받지 않고 크롤링을 진행할 수 있지만 HTML 요소들의 패턴을 파악하기가 쉬움 back selenium의 back 함수를 활용하면 뒤로 가기를 구현할 수 있음 driver.back() 15번째 게시글까지 모든 내용을 받아오는 파이썬 코드 작성하기 from selenium import webdriver import time # 자동화된 크롬 창 실행 driver = webdriver.Chrome('./chromedriver') # 네이버 로그인 페이지 접속하기 LOGIN_URL = 'https://nid.naver.com/nidlogin.login' driver.get(LOGIN_URL) time.sleep(1) # 로그인할 아이디와 비밀번호를 각각 변.. 2022. 1. 8.
[ 모각코+ 14일차 ] 로그인 페이지 동적 크롤링하기 [ 동적 크롤링 ] 자동화 소프트웨어를 막고 있는 웹 사이트는 send_keys 함수를 사용할 수 없음 * send_keys : HTML 요소에 데이터를 전송하는 함수 execute_script 자동화 소프트웨어를 막고 있는 웹 사이트의 경우를 위해서 selenium에는 execute_script 함수가 존재 execute_script는 입력받은 자바 스크립트 코드를 웹 브라우저에서 실행시키는 함수이다. driver.execute_script(" 자바스크립트 코드 ") XPath XPath는 웹 페이지의 구조 최상단부터 태그를 타고 들어가서 해당 HTML 요소가 어디에 존재하는지를 나타내는 경로의 일종이다. XPath는 find_element_by_xpath 함수를 통해서 HTML 요소를 선택할 수 있음.. 2022. 1. 7.
[ 모각코+ 13일차 ] CSV 파일 동적 크롤링하기 [ CSV 파일 동적 크롤링하기 ] 번역 결과값을 CSV 파일에 저장하기 #동적 크롤링을 하기 위해서는 selenium, time 라이브러리가 필요 from selenium import webdriver import time import csv #웹 드라이버 불러오기 driver = webdriver.Chrome('./chromedriver') #get 함수를 사용해서 웹 사이트의 내용 받아오기 URL = 'https://papago.naver.com/' driver.get(URL) #시간적 여유 3초 time.sleep(3) #open 함수를 사용해서 csv 파일을 생성하기 fhand = open('./my_word.csv', 'w', newline='') #csv 파일을 작성하는 객체 변수 wtr 작.. 2022. 1. 6.
[ 모각코+ 12일차 ] CSV 파일 [ CSV 파일 ] CSV ( Comma Separated Values ) : 콤마로 구분한 텍스트 데이터 혹은 텍스트 파일 한 줄이 하나의 행이 되고 콤마를 기준으로 열을 구분 많은 양의 데이터를 다룰 경우 데이터의 전체 크기를 줄이기 위해서 데이터 자체를 확장자 CSV로 저장함 * 데이터의 양 자체를 줄이는 것이 아님 CSV 파일은 텍스트 형식으로 데이터를 제외한 불필요한 요소들은 모두 제거되는 방식으로 저장된다. CSV 파일 라이브러리의 reader는 읽기를 담당하고 writer는 쓰기를 담당한다. [ CSV 파일 쓰기 ] open 함수 open 함수는 '파일 경로'에 해당하는 파일을 열고 파일 객체를 리턴해줌 open 함수가 실제로 파일을 읽는 것이 아니라 파일을 읽기 가능하게 해주는거임 open.. 2022. 1. 5.
[ 모각코+ 11일차 ] 동적 크롤링 사용해보기 ② [ 동적 크롤링 ] 동적 크롤링은 데이터를 즉시 수집하기 못하기 때문에 데이터를 수집하기 위한 과정이 매우 중요. * id는 한 웹 페이지 내에서 유일한 선택자 이므로 크롤링을 할 때 메우 유용하게 사용됨 find_element_by_css_selector find_element_by_css_selector 함수는 인자로 태그와 선택자의 조합을 받고 해당 HTML 요소를 리턴해준다. find_element_by_css_selector(" 태그#선택자값 ") send_keys send_keys 함수는 HTML 요소에 데이터를 전송하는 함수이다. HTML 요소에 메소드로 사용하고, 인자로 전송할 값을 넣어준다. [ selenium의 HTML요소 ].send_keys(" 전송할 값 ") click click .. 2022. 1. 4.
[ 모각코+ 10일차 ] 동적 크롤링 사용해보기 ① [ 동적 크롤링 ] 동적 크롤링은 페이지 내부에서 조작이 필요한 데이터를 수집할 때 사용한다. 원하는 정보에 대한 추가 정보가 들어있는 페이지로 클릭, 이동 등으로 조작하여 데이터를 수집할 수 있다. * 참고 : 정적 크롤링 vs 동적 크롤링 https://2chaechae.tistory.com/48?category=904830 [ 모각코+ 2일차 ] 정적 크롤링 vs 동적 크롤링 [ 정적 크롤링 ] 정적 크롤링은 로그인 등과 같은 사전 작업 없이, 한 페이지 내부에서 원하는 데이터를 수집할 때 사용 정적 크롤링은 주소를 통해 데이터를 요청하고 결과를 받는 것으로 과정 2chaechae.tistory.com 라이브러리 selenium 동적 크롤링을 사용하기 위해서는 selenium 라이브러리를 사용해야한.. 2022. 1. 1.
[ 모각코+ 9일차 ] 정적 크롤링 사용해보기 ④ URL 주소의 패턴을 이용해서 여러 페이지의 정보 수집해보기 # 정적 크롤링을 위한 라이브러리 import import requests import bs4 # URL 주소 입력 및 HTML 받아오기 # URL에 한글이 포함될 경우 자동으로 인코딩 되므로 지우고 한글로 써주면됨 URL = "https://tv.naver.com/r" # get 함수를 이용해서 웹 페이지의 내용 요청하기 raw = requests.get(URL) # 문자열 타입인 raw.text를 실제 HTML 코드로 변환해주기 html = bs4.BeautifulSoup(raw.text, 'html.parser') # 데이터를 감싸는 큰 틀 추출하기 box = html.find('div', { 'class' : 'top100' }) # 각.. 2021. 12. 30.
[ 모각코+ 8일차 ] 정적 크롤링 사용해보기 ③ 정적 크롤링은 주소값을 사용하기 때문에 한 페이지 내부에서만 원하는 데이터를 받아올 수 있음 하지만 정적 크롤링에서도 URL 주소값의 패턴을 파악해서 페이지 이동과 유사한 기능을 구현할 수 있음 URL 주소의 패턴 파악하기 네이버 TV : https://tv.naver.com/ 네이버 TV TOP 100 : https://tv.naver.com/r 네이버 TV TOP 100 1 : https://tv.naver.com/v/24333117 URL 주소의 패턴을 파악하는 이유는 여러개의 URL 주소를 대상으로 정적 크롤링을 여러 번 하기 위해서임 태그 및 선택자 확인 정적 크롤링을 여러번 하기 위해서는 URL 주소 패턴을 파악하고 그 패턴 안에 우리가 원하는 데이터가 갖고 있는 태그를 정확하게 찾아야함 ( .. 2021. 12. 29.
[ 모각코+ 7일차 ] 정적 크롤링 사용해보기 ② 정적 크롤링을 위한 BeautifulSoup 라이브러리 BeautifulSoup 라이브러리는 HTML을 효율적으로 탐색하고, 원하는 정보를 손쉽게 추출하기 위한 라이브러리이다. 즉 BeautifulSoup 라이브러리를 사용해 HTML 코드에서 우리가 원하는 정보만 추출이 가능하다. * BeautifulSoup 라이브러리 설치 방법 : https://2chaechae.tistory.com/51 [ 모각코+ 3일차 ] 설치 및 준비 [ 라이브러리 ] 라이브러리 : 필요한 기능을 수행할 수 있도록 준비된 함수와 메소드의 집합 정적 크롤링 라이브러리 [ requests ] http 요청을 쉽게 사용하기위해 만들어진 라이브러리 → 파이썬과 2chaechae.tistory.com import requests # 라.. 2021. 12. 28.