반응형

Data Engineering 28

[Crawling] Selenium

Selenium 웹 브라우저 제어 도구 원래는 웹 어플리케이션 자동 테스트를 위한 목적으로 만들어진 프레임워크. 웹브라우저를 프로그램을 이용해 제어할 수 있다. Request 모듈의 문제점 Javascript를 이용한 AJAX 기법의 비동기적 요청 처리 페이지 크롤링이 힘들다. 로그인 후 요청이 가능한 페이지들에 대한 크롤링이 번거롭다. Selenium을 활용하면 이 두가지 모두 쉽게 처리할 수 있다. Selenium 단점 속도가 느림 설치 파이썬 패키지 설치 conda install selenium pip install selenium 튜토리얼 !pip install selenium 드라이버 드라이버 : 웹브라우저를 제어하는 프로그램 웹 브라우저별로 제공된다. 위에서 설치한 selenium 패키지의 드..

[Crawling] 쿠팡검색결과 크롤링

www.coupang.com/np/search COUPANG 쿠팡은 로켓배송 www.coupang.com 검색키워드 입력을 받는 keyword 설정 keyword = input('검색키워드: ') params 및 header 설정 - params와 headers는 딕셔너리 구조로 설정한다. params에는 받아올 값을 입력하고 headers에는 user-agent나 cookie같은 것을 입력한다. - user-agent는 F12(검사)에서 Network탭을 누른다음 Doc탭을 눌러서 볼 수 있다. - user-agent가 없으면 크롤링이 안될 수도 있으니 가급적 설정하도록 하자. params = { 'q' : keyword, } #User-Agent header설정 headers = { 'User-Age..

[Crawling] KOSPI 주가 크롤링

https://m.stock.naver.com/sise/siseIndex.nhn?code=KOSPI 코스피 - 네이버 증권 관심종목의 실시간 주가를 가장 빠르게 확인하는 곳 m.stock.naver.com 코스피 주가 크롤링을 위해 네이버 증권을 이용하였다. 해당페이지에서 크롤링하기 전 먼저 살펴보아야하는 것이 있다. 먼저 F12를 누른다음 'NETWORK'탭으로 들어간다. 하지만 스크롤을 좀만 내리다보면 스크롤을 더 내리다보면 아무것도 누르지 않고 단지 스크롤만 내렸을 뿐이지만 신호가 왔다갔다하는 것을 볼 수 있다. 이번에는 저 링크로 들어가보겠다. 처음에 네이버증권을 틀었을때는 이용자가 어느정도까지 스크롤을 내릴지 모르기 때문에 데이터를 가지고 오지 않는다. 그리고 이용자가 스크롤을 내리면 그제서야 ..

[Crawling] 네이버 OPEN-API를 이용한 네이버 뉴스 크롤링

이전 포스팅에서 신청했던 네이버 OPEN-API를 이용하여 네이버 뉴스를 크롤링해보겠습니다. 네이버 OPEN-API를 이용하여 네이버 뉴스를 크롤링 네이버 검색 API 호출 예제를 활용하였습니다.(https://developers.naver.com/docs/search/blog/) ID와 Password는 네이버 OPEN-API홈페이지에서 확인 가능합니다. id = pwd= url = 'https://openapi.naver.com/v1/search/news.json?query={}' 검색할 키워드를 입력받습니다. import requests import pandas as pd from pprint import pprint keyword = input('검색 키워드:') headers를 작성합니다. 네이..

[Crawling] 네이버 개발자 API 가입

이번 포스팅에서는 네이버 관련 서비스 크롤링을 위해 네이버 개발자 API에 가입하는 방법을 알아보겠습니다.메인화면https://developers.naver.com/main/Application > 애플리케이션 등록 (내 애플리케이션-등록된 것 확인)-Product > API 소개 : 네이버 개발자 API 가 제공하는 API 확인Open API 이용신청애플리케이션 등록 – 네이버 API를 사용할 App등록•어플리케이션이름: 아래 규칙에 맞게 적당히 넣는다•사용 API: 사용할 API 선택•검색 선택•사용환경•WEB 설정 선택•웹 서비스 url : 우리가 오픈 api를 사용할 site를 입력하는데 로컬환경에서 할 것이므로 http://localhost 를 입력Document – API 설명서•상단의 Doc..

[Crawling] Daum 뉴스기사 크롤링

Daum 뉴스기사 요청 url확인 요청 -> 응답 응답문자열에서 정보 추출(BS) 조회할 항목들의 selector title : h3.tit_view #h3의 tit_view 클래스 reporter : span.info_view span.txt_info: nth-child(1) #span.txt_info의 첫번째 자식 태그 date : span.info_view span.txt_info : nth-child(2) #span.txt_info의 두번째 자식 태그 content : div#harmonyContainer #div의 harmonyContainer ID CF) 클래스는 h3.xxx 처럼 '.'을 사용해서 묶고 ID는 div#xxx 처럼 '#'으로 엮는다 url = "ht..

[Crawling] Request/Urllib

urllib 패키지를 이용한 URL 다루기 urllib 패키지 URL 작업을 위한 여러 모듈을 모은 패키지 주요모듈 urllib.request: URL을 열고 요청을 위한 모듈 urllib.parse: URL 구문 분석을 위한 모듈 urllib.robotparser: robots.txt 파일을 구문 분석하기 위한 모듈 URL (Uniform Resource Locator) 이란 - 네트워크 상의 자원(html문서, 이미지 등등) 이 어디에 있는지 그 위치를 식별하기 위한 규약 - 인터넷상의 웹페이지등을 찾기 위한 주소를 말한다. URL의 구성요소 - 구문 - ` scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]` 스키마(schema): 통..

[Crawling] BeautifulSoup

▣ BeautifuSoup - HTML이나 XML 문서 내에서 원하는 정보를 가져오기 위한 파이썬 라이브러리. - 설치 : pip install beautifulsoup4 ▣ 코딩 패턴 1. BeautifulSoup 클래스 import 2. BeautifulSoup 객체 생성 - 생성시 조회할 HTML 문서 전달 3. 문서내에서 필요한 정보 조회 - 태그이름과 태그 속성으로 조회 - css selector를 이용해 조회 - . 표기법을 이용한 탐색(Tree 구조 순서대로 탐색) ▣ 객체 생성 - BeautifulSoup(html str [, 파서]) - 매개변수 1. 정보를 조회할 html을 string으로 전달 2. 파서 - lxml : 매우 빠르다. html, xml 파싱 가능(xml 파싱은 lxml..

반응형