본문 바로가기

파이썬으로 퀀트 프로그램 만들기 project48

웹 크롤링 실습_6 - POST 웹 크롤링 방식 중 POST 방식으로 실습을 진행해보겠습니다. 예시 웹 사이트로 한국거래소 상장공시시스템에 접속해주세요. 그리고 [오늘의 공시 -> 전체 -> 더보기]를 선택하면 전체 공시내요을 확인할 수 있습니다. (링크) 여기서 다른 날짜를 검색해도 페이지는 바뀌지만 URL은 바뀌지 않는 것을 확인할 수 있습니다. POST방식인 것을 확인할 수 있습니다. 개발자도구 화면을 열고 [Network] 클릭 후, 오늘의 공시에 날짜를 클릭하면 todaydisclosure.do 를 확인할 수 있습니다. todaydisclosure.do를 통해 데이터를 요청하는 것입니다. 그것을 클릭하여 [Headers]를 보시면 Request URL이 우리가 요청하는 주소이고, Request method가 POST방식임을 확.. 2023. 9. 4.
웹 크롤링 실습_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를 크롤링 할 수 있습니다. 2023. 9. 4.
웹 크롤링 실습_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.. 2023. 9. 4.
웹 크롤링 실습_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를 통해 .. 2023. 9. 4.
웹 크롤링 실습_2 - find_all(), select() 웹 크롤링을 처음 배우신 분들은 저번 포스트를 참조해주세요. 일반적인 크롤링 과정은 다음과 같습니다. 1. HTML 정보 받기 request 패키지의 get() 혹은 post() 함수를 이용해 데이터를 요청한 후 HTML정보를 가져옵니다. 2. 태그 및 속성 찾기 bs4 패키지의 함수들을 이용해 원하는 데이터를 찾습니다. 3. 클렌징 데이터 클렌징 #크롤링할 데이터의 태그 이제 크롤링 실습을 해보겠습니다. 웹 크롤링 연습으로 자주 사용되는 명언 인용 사이트를 이용하겠습니다. 먼저 크롤링을 하기 위해서는 우리가 가져오고 싶은 데이터가 어떤 태그에 위치하는지 알아야 합니다. 이를 위해 [F12] 키를 눌러 개발자도구 화면을 열고 [Elements]탭을 선택합니다. 그리고 마우스 우클릭 후 [검사]를 눌러보면.. 2023. 9. 4.
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로 바꾸는 것이다. 2023. 9. 4.