회귀 분석은 결과 또는 반응 변수가 다른 변수에 의해 예측될 수 있도록 두 개 혹은 그 이상의 양적변수의 관계를 분석하는 통계학적 방법론이다. 아주 쉽게, 두 양적 변수 사이에 어떤 관계가 있는지를 통계학적으로 알아보는 것이다. 간단히 두 개의 변수 사이에는 함수적 관계와 통계적 관계가 존재한다. 함수적 관계란 주어진 X값에서 어떤 함수가 이에 상응하는 Y 값을 가져오는 것을 말한다. 가장 단순한 일차함수의 경우이다. 이 때, 주어진 X값에서 상응하는 Y값은 직선상에의 한 점으로 나타난다. 그러나 통계적 관계란 함수적 관계와 달리 완벽한 것이 아니다. 일반적으로 통계적 관계의 관측치는 정확히 도출한 직선 상에 위치하지 않는다. 여기서 실제치와 예측치의 차이인 오차가 발생하는 것이다. 데이터 사이언스 분야..
meta 태그에서 인코딩 방식 추출하기 html meta태그 안에 인코딩 방식이 지정되어 있다. 각 페이지 별로 인코딩 방식이 다를 수 있기 떄문에 해당 url을 통해 html 자료를 스크래이핑 한후 meta 태그 부분을 선별해내어 인코딩 방식이 무엇인지 알아낸다. urllib.request 패키지를 통해 스크레이핑할 url을 가져오고 bytes 자료형으로 변환하여 읽어준다. 실습은 한빛출판사 웹 페이지를 대상으로 한다. import sys from urllib.request import urlopen # urlopen() 함수는 HTTPResponse 자료형의 객체를 반환합니다. f = urlopen('http://www.hanbit.co.kr/store/books/full_book_list.html'..
https://qaos.com/article.php?sid=2432 QAOS.com | 정규식에서 *? 또는 +?의 의미 정규식에서 *? 또는 +?의 의미 게시일: 2006/06/29 | 글쓴이: doa | 12692 번 | 프린트 | 메일 사실 정규식은 유닉스에서만 사용할 수 있는 기능이었다. 그러나 펄의 정규식이 보편화되고 정규식의 강력함 qaos.com
정규표현식(regex) 일종의 문자를 표현하는 공식 → 특정 규칙이 있는 문자열 집합을 추출할 때 사용 HTML 태그를 사용한 크롤링 시 유용함 import re → 표준 모듈 re로 사용 1. 메타 문자(meta-characters) - 문자의 구성을 설명하기 위해 쓰이는 문자 [abc] one of / [ ] 내부의 문자와 매칭 / [ ] 에는 or 의미 / a or b or c = a | b| c [a-z] 문자의 범위 : a~z [^abc] none of 부정 / (a or b or c) 가 아닌 문자 ^abc 문자열의 시작 / 줄의 맨 앞의 abc만 매치 $abc 문자열의 끝 / 줄의 맨 끝의 abc만 매치 . \n 을 제외한 모든 문자 * 직전 패턴을 0번 이상 반복 (0도 가능 : 반복되지 ..
class 로 Card_className_u5rsb 까지는 접근했는데 도무지 저 href를 딸 수가 없어서 몇 시간을 썼는 지 모르겠다. 하이고...... 처음에는 driver.find_elements_by_css_selector('.Card_className_u5rsb') 접근해서 href로 링크를 가져오면 될 것 같았는데 계속 링크 정보가 포함이 안되었다. 기존에는 링크에 직접적으로 class/id/name 이 있어서 기계적으로 접근 할 수 있었는데 이번에는 자식인 a 태그로 접근을 해야했다. 저 쉬운 걸 몇 시간을 씨름하다가 결국 링크를 뱉어냈을 때 엄청난 희열을 느끼기는 했다.... 다음에는 바보 같은 짓 하지 말자.... urls = '.Card_className__u5rsb > a' url_r..
지난 번 네이버 블로그 크롤링과 유사하게 네이버에서 키워드 검색 후 관련 뉴스 기사 크롤링을 실습해 본다. 마찬가지로 처음에는 자동검색을 통해 url들을 수집한 뒤 pandas로 데이터프레임화 한 후 csv로 저장한다. 그 다음 csv를 로드한 뒤 url을 하나씩 열어 기사 본문과 댓글, 좋아요 등의 감정 수집까지 진행한다. 역시나 처음에는 전체 구조를 for문으로 만들기 전에 하나의 기사로 코드를 실험한다. 0. 라이브러리 & 모듈 - Selenium ActionChains : 여러 개의 동작을 체인으로 묶어서 저장하고 실행한다. - re : 정규표현식을 사용할 수 있는 모듈 # 라이브러리 import import pandas as pd import numpy as np from selenium imp..
환경준비 파이썬(3.5, 3.6), selenium, BeautifulSoup from bs4 import BeautifulSoup # html 데이터를 전처리 from selenium import webdriver # 웹 브라우저 자동화 from selenium.webdriver.common.keys import Keys import chromedriver_autoinstaller import time # 서버 통신 시 시간 지연 0. 크롬창 띄우기 driver = webdriver.Chrome("chormedriver.exe") # 크롬 드라이버 로드(윈도우 기준, mac은 절대경로) dirver.get(url) # url 입력 ※ 크롬 드라이버 autoinstaller 이용 chrome_path =..
지난 포스팅에서는 selenium을 이용해 네이버 검색어를 자동으로 입력해서 블로그 제목과 url을 크롤링 해봤다. 이번에는 지난 포스팅에서 저장한 excel 파일을 불러와서 블로그 내용까지 크롤링하는 연습이다. 모듈&라이브러리 import sys import os import pandas as pd import numpy as np 파일 로드 후 확인 # "url_list.xlsx" 불러오기 url_load = pd.read_excel("blog_url.xlsx") url_load = url_load.drop("Unnamed: 0", axis=1) # 불필요한 칼럼 삭제 num_list = len(url_load) print(num_list) url_load 2. 크롬 드라이버 실행 및 url 입력 -..
첫번째 크롤링 예제이다. 네이버 블로그에 검색어 입력 후에 나오는 블로그들을 크롤링하고 저장해본다. 검색어를 입력하고 스크롤까지 누르기 때문에 Selenium 모듈을 사용한다. (사실 selenium만 배운상태...) selenium의 장점은 다음 블로그를 참조하였다. https://www.hanumoka.net/2020/07/05/python-20200705-python-selenium-install-start/ Selenium 설치하기 및 크롤링 예제 들어가기python으로 크롤링을 할 때, 크롤링 대상인 웹 페이지에 동적인 동작을 곁들여서 크롤링을 할 수 있게 도와주는 라이브러리가 있는데, 그것이 selenium 이다. selenium 장점 웹 드라이버를 사 www.hanumoka.net 0. 모듈..
딕셔너리(dictionary) 리스트와 유사하지만 항목의 순서를 따지지 않는다 → 인덱스로 값을 찾을수 없다 대신 값(value)과 이에 상응하는 키(key)를 지정한다 → 키-값이 쌍으로 이루어진 객체들이 저장 딕셔너리는 변경 가능하므로 key, value는 모두 추가,삭제,수정할 수 있다 딕셔너리 vs 리스트 리스트 : 아이템 정렬이 필요할 때 (인덱스 개념 등 사용가능) 딕셔너리 : key와 value 가 서로 연관되어 있거나 key를 사용하여 어떤 값을 찾을 때 1. 딕셔너리 생성 : {} 딕셔너리 생성에는 중괄호 {} 를 사용하며 그 안에 콤마로 구분된 key:value 쌍을 지정한다 ice = {'메로나':1000,'폴라포':1200,'빵빠레':1800} print(ice) {'메로나': 10..