Web/Web Scraping
네이버 지도 크롤링
네이버 지도 크롤링
2022.09.25네이버 지도 웹 사이트는 웹 사이트 내부에서 웹 사이트를 보여주는 iframe 태그를 사용하기 기존 작업에서 한 단계 더 처리해줘야 한다. 뭔가 대단한 작업을 해야 되는 건 아니고, iframe 태그 내부로 접근 해 주는 부분만 처리하면 된다. 어차피 이 작업도 파이썬 모듈이 다 해 준다. 적절히 사용하는 방법만 기억하자. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.commo..
크롤링에서 POST 요청이 필요한 경우
크롤링에서 POST 요청이 필요한 경우
2022.09.24GET 요청으로 원하는 정보를 모두 가져올 수 있으면 좋겠지만, form 태그를 통해 정보를 입력하고 POST요청을 수행해야 정보를 받아올 수 있는 경우도 있다. 이런 경우 payload에서 form 정보를 가져오고 가져온 정보로 POST요청을 날려 데이터를 받아온 후 처리하자. 예시로, 토요코인호텔 사이트가 있다. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by..
네이버 금융 크롤링
네이버 금융 크롤링
2022.09.24네이버 금융 사이트는 주식들과 주식들의 정보를 제공한다. 주식 관련 정보를 가져와 적절히 가공해 투자에 사용해보자. 어떤 옵션을 표시할 지 설정해주자. 옵션을 선택하면 주식 명과 선택한 옵션에 대한 정보를 보여준다. 옵션을 선택하고 적용하기 버튼을 누르면 URL이 변경되지 않고 화면만 바뀐다. 이런 경우 개발자 도구에서 네트워크 옵션을 사용하자. 네트워크 옵션이 켜진 상태에서 적용하기 버튼을 누르면 사이트가 서버와 어떤 정보를 주고받았는지 확인할 수 있다. 여기서 제일 위에 위치한 옵션을 살펴보자. 클라이언트가 서버에 요청한 URL을 얻을 수 있다. 요청한 URL은 우리가 선택한 옵션이 반영된 정보를 보여주니, 이 URL을 사용해 크롤링을 진행하면 된다. (페이징 처리도 이쪽 URL을 사용해서 처리하고,..
이미지 크롤링
이미지 크롤링
2022.09.21네이버와 구글에서 검색어를 입력하고 검색해서 나온 이미지들을 컴퓨터에 저장해보자. 1. 네이버 from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from webdriver_manager.chrome import ChromeDriverManager import time import pyautogui import os import urllib.requ..
쿠팡 상품 크롤링
쿠팡 상품 크롤링
2022.09.20쿠팡에 검색어를 입력하고 쿠팡 랭킹순으로 상품을 엑셀에 저장해보자. import requests from bs4 import BeautifulSoup import pyautogui import openpyxl keyword = pyautogui.prompt("검색어를 입력하세요.") num = int(pyautogui.prompt("몇 페이지까지 가져올까요?")) wb = openpyxl.Workbook('coupang/coupang.result.xlsx') ws = wb.create_sheet(keyword) ws.append(['순위', '브랜드명', '상품명', '가격', '상세페이지 링크']) rank = 1 for page in range(1, num + 1): # 검색어 print(page, ..
네이버 뉴스 크롤링
네이버 뉴스 크롤링
2022.09.18네이버 검색창에 컴퓨터를 검색하고 카테고리를 뉴스로 설정했다. 크롤링 할 때는 첫 번째 기사처럼 네이버뉴스 버튼이 있는 기사를 가져오고 싶다. (웹 페이지의 구조를 동일하게 맞추기 위해) html을 분석해보니 네이버뉴스 버튼이 있는 기사들은 info 태그를 두 개씩 가지고 있다. 이 부분에 집중해 코드를 작성하자. import requests from bs4 import BeautifulSoup import time response = requests.get("https://search.naver.com/search.naver?where=news&sm=tab_jum&query=%EC%BB%B4%ED%93%A8%ED%84%B0") html = response.text soup = BeautifulSoup(..
HTTP 통신과 라이브러리
HTTP 통신과 라이브러리
2022.04.05HTTP통신으로 get과 post등 여러 가지 요청을 보낼 수 있다. get은 웹사이트에서 정보를 얻어올 때 사용하고, post는 웹사이트에게 정보를 제공하고 제공한 정보에 따라 응답을 확인하는 과정이다. (회원가입과 유사하다) 파이썬으로 웹 크롤링을 진행할 때 위의 HTTP통신을 수행하기 위해 외장 라이브러리인 Requests를 사용한다. import requests response = requests.get('http://www.naver.com') html = response.text print(html) requests.get메서드로 특정 URL을 입력하면, 입력한 URL의 HTML코드를 Python객체로 받아온다. 가져온 정보를 분석하고 사용하기 편한 형태로 가공하기 위해 BeautifulSou..