본문 바로가기

Python/Python_Crawling34

크롤링 : 멜론 □ 목적 ○ 차트 1~100위 곡명, 아티스트, 엘범명 데이터 크롤링 ○ 아티스트 세부정보 접속 링크 추출 ○ 엘범명 세부정보 접속 링크 추출 □ 코딩과정 ○ 라이브러리 호출 ○ 함수정의 : 아티스트, 엘범 세부정보 접속시 자바스크립트 코드 안에 있는 번호 추출을 위해 함수지정 ○ * .text 는 해당 태그 또는 하위 태그안의 텍스트를 출력하지만, .string은 특정 태그값이 지정되었을 때 정확한텍스트를 추출함 □ 코드 # 라이브러리 호출 import requests import re from bs4 import BeautifulSoup # 크롤링 페이지 입력 # 네이버뷰 주소 + 검색키워드 target_url = 'https://www.melon.com/chart/index.htm' print(f'.. 2024. 2. 2.
네이버 뷰 크롤링 : 제목, 작성자, 링크 + 예외처리 □ 목적 ○ 네이버 뷰에 게시글별 제목, 작성자, 해당글의 링크 데이터를 추출해보자 □ 고려사항 ○ 입력한 키워드에 따른, 관련 키워드 뷰 페이지에서 크롤링하도록 구현 ○ 네이버는 수시로 데이터가 포함된 태그값들이 변화됨 ○ 이 부분을 고려하여 적절한 예외처리를 진행하여 오류가 발생되도 멈추지 않고 코드가 실행되도록 코딩 □ 참고사항 ○ .get_text() 와 .text 차이 - .get_text() 메서드는 BeautifulSoup에서 제공하는 메서드로, HTML 요소의 모든 텍스트를 추출. 이 메서드는 해당 요소의 모든 자식 요소의 텍스트를 합쳐서 반환. 예를 들어, [ 이것은 굵은 텍스트입니다. ]에서 .get_text()를 호출하면 "이것은 굵은 텍스트입니다."를 반환. - .text 속성은 B.. 2024. 1. 30.
특정 영역의 하위태그별 데이터 크롤링 □ 아래 그림 참고요망 □ 코스피 텝에서 표시되는 모든 회사명, 회사별 코스피가격, 증감률 데이터 추출 □ 코스피 텝, 즉, 상위 태그안에서의 데이터들 중 회사명, 코스피가격, 증감률에 해당하는 클래스 네임과 For문을 활용해 추출 및 출력 #라이브러리 호출 import requests import re from bs4 import BeautifulSoup #크롤링대상사이트 및 request/get 요청 req_site = requests.get('크롤링사이트') soup_parser = BeautifulSoup(req_site.content, 'html.parser') get_data = soup_parser.select('.row_sty') #클래스네임이 row_sty 영역의 데이터 요청 #회사명과 .. 2024. 1. 28.
공공데이터 포탈 API □ 공공데이터 : https://www.data.go.kr/ 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase www.data.go.kr □ 사전작업(회원가입 완료되었다고 가정) ① API 신청하고자할 데이터 조회/검색 ② 해당 데이터 상세보기 > 활용신청 클릭 ③ 신청승인이되면 요청한 데이터의 기술목록 다운 및 API 링크, 변수 등 파악 ④ 개인 인증키 파악 □ 사전작업 완료 후 postman에서 API링크와 인증키 입력 후 데이터 요청/수신 여부 확인 ○ 링크 및 인증키, 변수등을 잘 입력했다면 아래와 같이 수신된 데이터가 표시됨 * 작성자.. 2024. 1. 22.
네이버 API : 데이터 엑셀저장 □ 목적 : 네이버 쇼핑몰에 등록된 품목(사용자가 조회한 키워드) 추출 □ 활용 라이브러리 ○ requests : API에 요청 및 응답으로 데이터 크롤링을 위해 활용 ○ openpyxl : 엑셀저장을 위해 □ API 중 http매서드 파라미터 참고사항 *링크: https://developers.naver.com/docs/serviceapi/search/shopping/shopping.md#%EC%87%BC%ED%95%91 ○ 해당 글 작성자는 요청 url + display, start 파라미터를 사용함 - 해당 코드(https://openapi.naver.com/v1/search/shop.json?query=노트북'&display=100&start=100)를 아래 코드와 같이 변환 - 위 코드를 해석하.. 2024. 1. 21.
네이버 API : 파이썬 코딩 위와 같이 네이버 API 와 postman으로 데이터를 요청하고 받을 수 있음. 이러한 방식과 같이 네이버 API와 파이썬으로 데이터를 요청하고 받고자함. ※ 준비사항 ① naver application ID : X-Naver-Client-Id ② naver application PW : X-Naver-Client-Secret □ 활용 라이브러리 ○ requests : 해당 데이터를 특정서버에 요청하여 가져오는 라이브러리 ○ pprint : 가시성 개선을 위한 출력을 위해 불러옴(json 형식으로 깔끔하게 출력해줌) import requests # 해당 데이터를 특정서버에 요청하여 가져오는 라이브러리 import pprint #가시성 개선을 위한 출력을 위해 불러옴(json 형식으로 깔끔하게 출력해줌) .. 2024. 1. 21.
API/JSON 이란?(+postman 활용 데이터 get) □ Open API(Rest API) ○ Application Programmin Interface ○ 특정 프로그램을 만들기 위해 제공되는 모듈(함수 등)을 의미 ○ Open API : 공개 API라고도 불리우며 누구나 사용할 수 있도록 공개된 API(주로 REST API 기술을 사용함) ○ REST API : Representational State Transfer API 약자, HTTP 프로토콜을 통해 서버제공 기능을 사용할 수 있는 함수 의미 - 일반적으로 XML, JSON 형태로 응답을 전달 □ JSON ○ JavaScript Object Notation ○ 웹환경에서 서버와 클라이언트 사이에 데이터를 주고받을 때 많이 사용 ○ 형태 : {'키':'벨류'~~} * TMI) localhost = .. 2024. 1. 19.
셀레니움 : 다음이미지 마우스호버 및 사진별 캡쳐 □ 주 사용 라이브러리 ○ 셀레니움 ○ 셀레니움 > 웹드라이버 > 키 ○ 셀레니움 > 웹드라이버 구동 ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리 ○ 셀레니움 > 웹드라이버 > 마우스커서 ○ 타임지정 from selenium import webdriver from selenium.webdriver.chrome.options import Options #크롬 자동방지 등 옵션 활용 라이브러리 from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리 from selenium.webdriver.common.keys import Keys #값입력.. 2024. 1. 19.
셀레니움 : 파일업로드 □ 주 사용 라이브러리 ○ 셀레니움 ○ 셀레니움 > 웹드라이버 > 키 ○ 셀레니움 > 웹드라이버 구동 ○ 셀레니움 > 웹드라이버 > 옵션 라이브러리 ○ 타임지정 from selenium import webdriver from selenium.webdriver.chrome.options import Options #크롬 자동방지 등 옵션 활용 라이브러리 from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains #마우스 커서관련 라이브러리 from selenium.webdriver.common.keys import Keys #값입력시 활용 라이브러리 import time .. 2024. 1. 19.