본문 바로가기

전체 글

(50)
vscode에서 input 받을 때의 오류 해결! - 키보드 입력 활성화 vscode에서 input함수를 사용할 때에 input을 못 받아내는 경우가 있습니다. 1. ctrl + shift + x 누른 후 좌측에서 code runner를 찾아서 클릭하세요. 2. code runner 아이콘 옆에 있는 톱니바퀴 버튼을 클릭하세요. 3. 확장 설정 클릭하세요. 4. 검색창에 run in terminal을 검색하세요 5. whether to run code in integrated terminal.박스를 클릭!
웹 크롤링 실습_6 - POST 웹 크롤링 방식 중 POST 방식으로 실습을 진행해보겠습니다. 예시 웹 사이트로 한국거래소 상장공시시스템에 접속해주세요. 그리고 [오늘의 공시 -> 전체 -> 더보기]를 선택하면 전체 공시내요을 확인할 수 있습니다. (링크) 여기서 다른 날짜를 검색해도 페이지는 바뀌지만 URL은 바뀌지 않는 것을 확인할 수 있습니다. POST방식인 것을 확인할 수 있습니다. 개발자도구 화면을 열고 [Network] 클릭 후, 오늘의 공시에 날짜를 클릭하면 todaydisclosure.do 를 확인할 수 있습니다. todaydisclosure.do를 통해 데이터를 요청하는 것입니다. 그것을 클릭하여 [Headers]를 보시면 Request URL이 우리가 요청하는 주소이고, Request method가 POST방식임을 확..
웹 크롤링 실습_5 - 테이블 데이터 크롤링 하기(pandas) 웹 페이지에서 테이블 데이터를 크롤링 하는 방법을 알아보겠습니다. 먼저 예시 웹 사이트로 위키피디아에 [List of countries by stock market capitalization]을 검색해줍니다. (링크) 이 웹사이트에 있는 테이블 데이터를 크롤링 해보겠습니다. #테이블 데이터를 다룰 때는 pandas를 사용해준다. import pandas as pd url = 'https://en.wikipedia.org/wiki/List_of_countries_by_stock_market_capitalization' tbl = pd.read_html(url) print(tbl) 이처럼 테이블 데이터는 기존의 크롤링 방식과 달리 매우 간단하게 pandas를 크롤링 할 수 있습니다.
웹 크롤링 실습_4 - 금융 속보 제목 추출하기 금융 속보 제목을 추출해보겠습니다. 네이버 증권 사이트 -> 뉴스 -> 실시간 속보로 가주세요. (링크) 해당 페이지에서 제목에 해당하는 부분을 알아내기 위해 개발자도구를 열어줍니다. 제목에 해당하는 부분에 우클릭 -> 검사 클릭 해줍니다. 여기서 제목 부분은 dl태그 -> dd 태그, class = articleSubject - > a 태그 -> title 속성의 속성값 import requests as rq from bs4 import BeautifulSoup url = 'https://finance.naver.com/news/news_list.naver?mode=LSS2D&section_id=101&section_id2=258' data = rq.get(url) html = BeautifulSoup..
웹 크롤링 실습_3 저번 포스트를 참조해주세요. 저번 시간에 이어 이번에는 명언을 말한 사람의 데이터를 크롤링 해보겠습니다. 명언을 말한 사람은 class가 qoute 인 div태그 -> span 태그-> small 태그 중 class 이름이 author인 부분입니다. quote_author = quote_html.select('div.quote > span > small.author') quote_author_list = [i.text for i in quote_author] print(quote_author_list) 이번에는 명언을 말한 사람에 대한 정보 링크들을 크롤링 해보겠습니다. span 태그 -> a 태그의 href 속성 -> 속성 값 링크에 해당하는 href 속성값에 접근하는 방법은 우선 select를 통해 ..
웹 크롤링 실습_2 - find_all(), select() 웹 크롤링을 처음 배우신 분들은 저번 포스트를 참조해주세요. 일반적인 크롤링 과정은 다음과 같습니다. 1. HTML 정보 받기 request 패키지의 get() 혹은 post() 함수를 이용해 데이터를 요청한 후 HTML정보를 가져옵니다. 2. 태그 및 속성 찾기 bs4 패키지의 함수들을 이용해 원하는 데이터를 찾습니다. 3. 클렌징 데이터 클렌징 #크롤링할 데이터의 태그 이제 크롤링 실습을 해보겠습니다. 웹 크롤링 연습으로 자주 사용되는 명언 인용 사이트를 이용하겠습니다. 먼저 크롤링을 하기 위해서는 우리가 가져오고 싶은 데이터가 어떤 태그에 위치하는지 알아야 합니다. 이를 위해 [F12] 키를 눌러 개발자도구 화면을 열고 [Elements]탭을 선택합니다. 그리고 마우스 우클릭 후 [검사]를 눌러보면..
UnicodeEncodeError: 'cp949' codec can't encode character 해결 이것은 cp949 codec이 문자를 encode를 못해서 발생하는 오류이다. 오류가 발생하는 파일에서 맨위에 다음과 같은 코드를 추가해주면 오류를 해결할 수 있다. # -*- encoding: utf-8 -*- import sys import io sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding = 'utf-8') sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding = 'utf-8') encoding 방식을 utf-8로 바꾸는 것이다.
웹 크롤링 실습_1 - GET, POST 크롤링 혹은 스크랩핑이란 웹 사이트에서 원하는 정보를 수집하는 기술을 뜻합니다. 크롤링을 할때의 주의사항이 있습니다. #주의사항 · 특정 웹사이트의 페이지를 쉬지 않고 크롤링 하는 행위를 무한 크롤링이라고 합니다. · 무한 크롤링은 해당 웹사이트의 자원을 독점하게 되어 타인의 사용을 막게 되며 웹사이트에 부하를 줍니다. · 일부 웹사이트에서는 동일한 ip로 쉬지 않고 크롤링을 할 경우 접속을 막아버리는 경우도 있습니다. · 따라서 하나의 페이지를 크롤링한 후 1~2초 가량 정지하고 다시 다음 페이지를 크롤링하는 것이 좋습니다. · 신문기사나 책, 논문, 사진 등 저작권이 있는 자료를 통해 부당이득을 얻는다는 등의 행위를 할 경우 법적 제재를 받을 수 있습니다. #GET 서버에 데이터를 요청하는 형태는 매..