본문 바로가기

코딩 연습/코딩배우기160

공공데이터 포털 api 사용법 - 파이썬으로 아파트 단지 코드 추출 ※파이썬으로 아파트 표준 데이터(공동주택 기본 정보) 관련 정보를 얻기 위해 공공데이터 포털에서 제공하는 단지 코드를 API를 활용해보았다. 그런데 전국에 있는 아파트 전체에 대한 코드가 아니라 관리비 공개 의무 단지만을 대상으로 하는 코드만 제공하는지 실제 아파트 숫자보다 적었다. 공공데이터 포털 오픈 API로 아파트 단지 코드 추출해보기 공동주택 관리비의 투명성 등을 확보한다는 취지로 지정된 "관리비 공개 의무 단지"는 다음과 같다고 되어있다. ☞ 참고 : 공동주택관리 정보시스템 http://www.k-apt.go.kr/cmmn/kaptworkintro.do 300세대 이상 공동주택, 승강기가 설치되었거나 중앙(지역) 난방방식을 갖춘 150세대 이상인 공동주택, 주택 150세대 이상인 주상복합 아파트.. 2022. 1. 23.
파이썬 사전 타입 OrderedDict()와 dict() 차이점, 그리고 변환 파이썬 OrderedDict()는 순서 있는 딕셔너리이다. 순서가 없는 dict()에 3.6 버전에서부터 순서를 부여하긴 했으나 자료 호환성 측면과 순서가 중요한 경우, OrderedDict()를 사용한다. 그런데 문제는 중첩(nested)된 OrderedDict 형태였다. 파이썬 OrderedDict()를 dict() 타입으로 변환 최근 창호 관련 홍보, 부동산 매물 확보와 부동산 분양 등의 홍보 등을 위한 DM 주소 확보를 위해 공공데이터 포털에서 아파트 관련 정보를 추출하고 있는데, 아파트 단지 코드가 필요하여 관련 open api를 활용하여 추출해야 했다. 그런데, 샘플 데이터인 xml 데이터를 파싱 해서 보니 OrderedDict 타입으로 되어있었다. 이 자료를 엑셀로 저장하기 위해 dict 타.. 2022. 1. 20.
공공데이터를 활용한 아파트 도로명 주소 등 추출해보기 공공데이터를 openapi로 제공하는 data.go.kr에서 아파트 관련 정보를 얻기 위해 api 사용 연습을 해보았는데, 구글에서 관련 자료들을 참고하여 시도하니 큰 어려움은 없었으나 1일당 제공하는 데이터의 양이 적은 것도 있어서, 표준 데이터(공동주택 기본 정보)를 활용했고, 그에 대한 샘플 자료를 대상으로 한 api 호출 내용을 정리해보았다. 아파트(공동주택) 기본 정보 api 호출 연습 등에 대한 정리 1. 본 작업을 하게 된 동기 얼마 전에 창호 샷시 교체 사업을 하는 회사에 다니는 지인의 부탁으로 아파트 dm을 보낼 주소(도로명 주소 기반 아파트 주소)를 구해달라는 부탁을 받았다. 인근 아파트에 리플릿이나 전단지 배포를 위해 사람을 고용하여 동, 호수마다 전단지를 한 장씩 배포하는 것은 해당.. 2022. 1. 18.
웹 페이지 <script> 태그 CDATA, 넌 뭐하는 넘이니... 웹 페이지 내 파이썬 스크래핑(크롤링)으로 CDATA 추출하는 방법 CDATA를 쓰는 이유는, 웹 브라우저의 구문 분석(XML Parser) 문제 때문에 사용하기도 하고, 웹 사이트에서 데이터를 추출할 때, 과도하게 추출하는 것을 막기 위한 조치, 즉 스크래핑(크롤링) 못하도록 여러 장치를 두는 한 방법으로도 사용하는 것이라고 한다. CDATA 있는 웹 페이지(샘플) ''' +855 (0)23 21 59 60 c.vattanakpagna@acclime.com https://cambodia.acclime.com/ ''' 크롤링 해보기 from requests_html import HTMLSession import re url = 'https://www.eurocham-cambodia.org/member/5.. 2022. 1. 15.
네이버 쇼핑 아이디별 등록 상품 추출하는 법(파이썬 script 태그 스크래핑 가이드) 네이버 쇼핑의 각 판매자 사이트에 들어가 보면 상품 리스트가 있고, 각 상품에 대한 제목, 가격, 리뷰수, 평점 등의 데이터가 있다. 이 부분을 확인해보면 파이썬 requests로 네이버쇼핑 아이디별 등록 상품 리스트 데이터 추출 네이버 쇼핑에서 상품 검색 시 스마트스토어에 상품을 등록한 판매자명이 보인다. 그 부분을 클릭하면 해당 판매자의 스마트스토어 쇼핑몰에 접속하게 되는데, 상품 리스트의 html 소스코드 내용을 보기 위해 "페이지 소스보기"를 해서 보던지, "개발자 도구(F12)"를 펼쳐 Name에서 메인 화면 또는 특정 항목(판매자 ID 등)으로 된 부분을 클릭해서 Response 부분의 코드를 보면 부분 밑에 관련 정보가 있는 것을 발견하게 된다. window.__PRELOADED_STATE_.. 2022. 1. 14.
이미지 다운로드 관련 requests와 requests-html 비교 파이썬으로 이미지 다운로드 관련 코딩을 할 때, 동적인 페이지의 문제로 인해 selenium을 많이 사용한다. 그러나 selenium의 단점으로 인해 다른 방법을 찾는 것이 사실인데, 이런 부분을 requests-html로 어느 정도 해결이 되는 것 같아서 다음 이미지 다운로드 방법으로 requests와 requests_html를 비교해본다. Daum 이미지 다운로드 관련 requests와 requests-html 중 무엇을 사용할 것인가 - 다음에서 이미지만 보여주는 탭에서 최근 화두인 '메타버스' 이미지 검색 - 이미지 링크 주소(URL)가 잘 보인다. requests.get()으로 다운로드 가능할까? - 첫 번째 이미지 소스코드중 https://search4.kakaocdn.net/argon/0x2.. 2022. 1. 11.
동적(JavaScript) 웹 페이지의 json 데이터 형식 이미지 다운로드 (with 파이썬) 파이썬을 가지고 웹 스크래핑을 해봤다면, 동적으로 렌더링 된 웹 사이트에서 BeautifulSoup나 requests로 이미지 등의 콘텐츠를 스크래핑한다는 것이 어렵다는 것을 알 것이다. 파이썬으로 다수의 unsplash 이미지 다운로드 해보기 스크래핑을 연습할 대상 사이트는 unsplash.com이며, 페이지 소스보기를 해서 보면 javascript 소스로 되어있다. 아래 소스코드는, 자바스크립트를 사용하는 동적인 웹 사이트에서 BeautifulSoup 또는 selenium을 사용하지 않고 개발자 도구를 최대한 활용하여 관련 데이터를 찾아낸 후, requests 라이브러리로만 이미지를 스크래핑하는 것을 보여준다. 개발자 도구(F12)의 Network > XHR에서 search?query=dog&...로.. 2022. 1. 11.
11번가 실시간 쇼핑 검색어 추출해서 저장하기(python tkinter) 11번가의 검색란 우측에 있는 키워드 롤링 부분을 클릭하면, 실시간 쇼핑 검색어 20개가 보인다. 이 부분에 대해 파이썬으로 스크래핑 후 csv 파일로 저장하는 소스코드와 Tkinter로 UI를 만들어 실행 파일로 생성하는 방법을 참고용으로 기록함. 파이썬 Tkinter로 11번가의 실시간 쇼핑 검색어 순위 추출 및 저장하기 파이썬 소스코드 from tkinter import * import tkinter.messagebox as msgbox import re import webbrowser import pyperclip import requests import json from csv import * root = Tk() root.title('검색어 순위') root.geometry('450x350+7.. 2022. 1. 10.
단축 URL 스크래핑에 파이썬 비동기 처리 개념 적용해보기 파이썬에서 쓰레드와 비동기는 어떻게 사용되는지 궁금하여 알아본 결과, 하나의 쓰레드로 동시 처리를 하는 비동기 프로그래밍이 당연히 좋다고 해서, 기초적인 지식이지만, 이를 응용하여 단축 URL 생성하는 스크래핑을 비동기로 구현해보기로 했다. URL주소 단축URL 생성 시 파이썬 비동기 처리로 스크래핑해보기 원래 파이썬은 기본적으로 동기 방식으로 설계되었고, 내장 모듈(라이브러리) 대부분도 동기 방식으로 동작한다고 한다. 그러다가 3.4 버전부터 asyncio 모듈이 추가되었고, 이후 async와 await가 채택되면서 비동기 프로그래밍이 가능해졌다. 비동기 함수는 def 대신 'async def' 키워드 사용 await는 작업 완료 통보가 올 때까지 다음 작업을 지연시키고 이벤트 루프에 작업이 있으면 해.. 2022. 1. 7.
selenium으로 네이버 쿠키를 얻고 세션을 유지하는 방법 네이버에서 로그인이 필요한 웹 페이지에 대해 스크래핑(크롤링)을 하려면 세션을 유지해야 하는데, 셀레니움(selenium)으로 쿠키를 얻은 후, selenium이 아닌 requests.Session 모듈로 쿠키를 보내서 세션을 유지할 수가 있다. 로그인 없이 접속한 경우의 헤더(headers)와 쿠키(cookies) import requests from bs4 import BeautifulSoup def requests_cookie(url): response = requests.get(url, headers={'User-Agent':'Mozila/5.0'}) print(response.headers) # 응답 headers print(response.cookies) # soup = BeautifulSou.. 2022. 1. 3.