본문 바로가기

코딩 연습/코딩배우기164

파이썬 크롤링(Crawling) 연습 - find(), find_all() 사용한 네이버 증시 주가 추출 ■ 파이썬(Python) BeautifulSoup의 객체 관련 함수인 find(), find_all()를 활용한 네이버 금융의 국내증시 주가(시고저종) 부분 크롤링 url, headers, params를 인자로 전달하면 BeautifulSoup 객체를 return하는 function 만들어서 사용 종목코드를 입력하면 오늘, 전일, 고가(상한가), 거래량, 시가, 저가(하한가), 거래대금 추출할 수 있음 네이버 금융>국내증시의 페이지 소스 보기와 개발자도구(F12)에서 소스 코드 내용이 상이한 부분이 있음( 태그와 태그 중 보이지 않거나 속성이 변경되는 경우가 있음) ▷ 페이지 소스 삼성전자 오늘의시세 58,100 포인트 900 포인트 하락 1.53% 마이너스 58,100 58,100 전일대비 하락 900.. 2020. 10. 29.
파이썬 크롤링(Crawling) 연습 - BeautifulSoup 객체를 모듈로 만들어서 사용해보기 ■ 파이썬(Python) BeautifulSoup의 객체를 반환하는 모듈을 만들어서 사용해보기 - 연습 대상 사이트 : 네이버 금융 페이지에서 주가를 추출해서 저장해보기 ▷ 모듈 : beautifulsoup.py # url, headers, params를 인자로 전달하면 BeautifulSoup 객체를 return하는 function 만들기 import requests from bs4 import BeautifulSoup def get_bs_obj(url, headers = None, params = None): result = requests.get(url, headers = headers, params = params) soup = BeautifulSoup(result.content, 'html.pa.. 2020. 10. 27.
파이썬 웹 크롤링(Web Crawling) 알아보기 #9 ■ 파이썬 크롤링 실습 - 국회사이트 국회의원 목록 국회(assembly.go.kr) 사이트의 국회의원 현황 페이지의 목록이 '페이지 소스 보기"에서는 안보임 https://assembly.go.kr/assm/memact/congressman/memCond/memCond.do 개발자도구(F12) Network탭에서 목록이 확인됨 https://assembly.go.kr/assm/memact/congressman/memCond/memCondListAjax.do 하단 페이지 클릭 시 Request Method: POST 방식이기 때문에 파라미터가 필요한데, 페이지 클릭 시 Network탭 하단의 Form Data 부분을 보면 currentPage가 1, 7, 13, 19,... 순으로 변경되고 rowPerP.. 2020. 10. 26.
파이썬 웹 크롤링(Web Crawling) 알아보기 #8 ■ 파이썬(Python) 크롤링 연습 - 팟빵 목록 추출하기 http://www.podbbang.com/ 팟빵 채널(ex. 일빵빵 입에 달고 사는 기초영어) 선택 후, 우측 목록(파일 리스트) 페이지를 클릭하면 Ajax처럼 작동하는데, 개발자도구(F12)로 Network 탭에서 해당 URL을 확인해보면 Json 형태를 확인할 수 있다. Request URL: http://www.podbbang.com/_m_api/podcasts/7193/episodes ?offset=1&sort=pubdate:desc&episode_id=0&limit=8&with=summary&cache=0 # json 파일임 최소 파라미터 확인 결과, http://www.podbbang.com/_m_api/podcasts/7193/e.. 2020. 10. 26.
파이썬 웹 크롤링(Web Crawling) 알아보기 #7 ■ 파이썬 크롤링 실습 - iframe 사이트 크롤링해보기 페이지 소스 보기로 내용이 안보일 경우, 자바스크립트 또는 iframe일 가능성 있음 http://goodmonitoring.com/monitor_board/ 사이트의 경우, ifrmae 형식임 개발자도구(F12)로 소스코드 확인 결과, src 부분(http://goodmonitoring.com/xe/moi)을 새 탭에서 열고, F12로 보면 게시판 리스트가 보이며, 페이징 처리가 되는 구조라서 하단 페이지네이션 부분을 클릭해본 후 페이징 처리 구조 확인함 http://goodmonitoring.com/xe/index.php?mid=moi&page=2 import requests from bs4 import BeautifulSoup from ur.. 2020. 10. 25.
파이썬 웹 크롤링(Web Crawling) 알아보기 #6 ■ 멜론차트에서 시대별 곡 추출해보기 멜론차트에서 시대별 곡 추출을 위해 페이지소스보기를 보았으나 관련 소스코드가 안보이는데, 개발자도구(F12) Network탭 XHR에서 관련 소스코드의 URL을 확인할 수 있다. XHL - Request URL: https://www.melon.com/chart/age/list.htm?idx=1&chartType=AG&chartGenre=KPOP\ &chartDate=2000&moved=Y 소스에서 곡 정보 클릭 시, https://www.melon.com/song/detail.htm?songId=2012282 이며, songId가 있는 태그는 javascript인 goSongDetail()와 playSong() 두 곳에 있음 # 시대 import requests f.. 2020. 10. 25.
파이썬 크롤링(Crawling) 연습 - BeautifulSoup 관련 함수 ■ 파이썬 크롤링을 위해 알아야 하는 BeautifulSoup 관련 find(), find_all(), select() 등 함수 활용 예시 BeautifulSoup은 HTML, XML 등 파일에서 원하는 데이터를 파싱(Parsing)할 수 있는 라이브러리이다. BeautifulSoup는 매개변수로 전달받은 HTML 문자열(태그 요소와 내용 등의 소스 코드)을 BeautifulSoup 클래스 객체로 변환하여 원하는 정보를 추출할 수 있다. 이 변환을 위해 html.parse, xlml 등의 구문 해석기(parser)를 이용한다. type() 함수로 soup객체를 확인하면 BeautifulSoup 클래스 객체임을 확인할 수 있다. 아래의 html 소스를 test_html 변수에 저장하고, 이를 url로 가정.. 2020. 10. 25.
[python] 파이썬 크롤링(Crawling) 연습 - 네이버 메인페이지 추출해보기 ■ 크롤링파이썬 크롤링(Crawling) 연습 - 정리 #1 ▷ 네이버 메인페이지 추출해보기 import urllib.request from bs4 import BeautifulSoup url = 'https://www.naver.com' html = urllib.request.urlopen(url) print(html) # print(html.read()) bsObj = BeautifulSoup(html, 'html.parser') # 파싱 print(bsObj) # 네이버 페이지 소스 보기로 보이는 내용과 같은 내용 출력 BeautifulSoup은 데이터를 추출(파싱 후 추출)하는데 필요한 기능이 들어있는 라이브러리 (파싱 라이브러리) bs4 라이브러리 미설치 에러 발생 --> pip install .. 2020. 10. 23.
[python] 파이썬 웹 크롤링(Web Crawling) 알아보기 #5 ■ 파이썬으로 멜론차트 24Hits 리스트 추출하기 멜론차트에서 24Hits의 노래 목록(리스트)별 가수, 앨범과 곡 정보를 추출하는 파이썬 크롤링 코드 24Hits의 URL은 https://www.melon.com/chart/index.htm 이고, 곡 정보의 URL은 https://www.melon.com/song/detail.htm?songId=32978341 import requests from bs4 import BeautifulSoup import re top100_url = 'https://www.melon.com/chart/index.htm' headers = { 'Referer': 'https://www.melon.com/index.htm', 'User-Agent': ('Mozilla/5.. 2020. 10. 21.
[python] 파이썬 웹 크롤링(Web Crawling) 알아보기 #4 ■ 멜론(Melon)에서 노래 검색하여 앨범명, 곡명, 곡 정보 등을 표시하는 파이썬 크롤링 멜론(Melon)의 검색창에 키워드를 넣으면 자동으로 완성되는 아티스트, 곡, 앨범 목록이 보인다. 이 서비스 목록을 찾기 위해 개발자 도구(F12)를 열어서 Network탭의 All 또는 XHR을 보면 index.json 파일이 있다. 이 중 해당 키워드 관련 파일을 새탭으로 열어보면 요청사항에 대한 응답 내용을 볼 수 있고, 응답 내용을 파이썬에서 파싱해서 원하는 형태로 만들 수 있다. 아래 예제는 '송가인'으로 검색한 결과임 import requests import json #https://www.melon.com/search/keyword/index.json?jscallback=jQuery\ #191053.. 2020. 10. 20.