1. 쿠팡 상품 크롤링 쿠팡에 원하는 검색어를 검색하고 상위 100위까지를 크롤링하는 코드다. 크롤링 결과는 액셀에 저장한다. import openpyxl import requests from bs4 import BeautifulSoup def select_by_css_selector(soup, css_selector: str): try: result = soup.select_one(css_selector).get_text().strip() except AttributeError: result = "None" return result if __name__ == "__main__": workbook = openpyxl.Workbook("coupang_crowling_results.xlsx") keyword..
DB/Crawling
1. 워드 클라우드 워드 클라우드란 중요한 단어를 더 잘 보이게 만드는 기법으로 아래와 같은 것을 말한다. 이를 만들기 위해서 첫 번째로 본문 내용을 합치고 그 다음 워드 클라우드를 만들면 된다. 2. 워드 클라우드 제작 이전에 작성했던 코드를 통해 기사를 가져오고, 해당 내용을 클립보드에 복사했다. 클립보드 복사에는 python 라이브러리인 pyperclip을 사용했다. import time import pyautogui import pyperclip import requests from bs4 import BeautifulSoup keyword = pyautogui.prompt("검색어를 입력하세요.") page = pyautogui.prompt("몇 페이지를 탐색할지 입력하세요.") # 본문 전체 ..
1. python-docx python에서 워드를 활용하기 위해서는 python-docx 라이브러리를 사용할 수 있다. python-docx 설치를 위해 아래 명령어를 실행하면 된다. pip install python-docx 기본적인 메서드에는 워드 객체를 생성하는 Document()와 제목을 작성하는 add_heading(), 본문을 작성하는 add_paragraph() 등이 있다. 예시 코드는 다음과 같다. from docx import Document # 1. 워드 생성 document = Document() # 2. 워드에 데이터 추가 # level = 제목의 크기 (0 = 가장 크며 아래에 밑줄이 있다. 1~6으로 갈수록 크기가 작아진다.) document.add_heading('제목', le..
1. 네이버 뉴스 링크 가져오기 네이버 뉴스의 링크를 가져오기 위해 먼저 네이버의 검색 창에 원하는 검색어를 검색하고, 뉴스 링크들을 확인해보자. 이때 "네이버 뉴스" 기사로 가려면 아래와 같이 info_group를 클래스 값으로 가진 div 태그 안에 info를 클래스 값으로 가진 a 태그 두 개가 존재해야한다. 우리가 가져올 링크는 a 태그 중 2번째에 있는 링크를 가져올 것이다. 링크를 가져오기 위한 코드는 아래와 같다. import requests from bs4 import BeautifulSoup response = requests.get("https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query=%EC..
1. 셀레니움 기초 이전에 배운 requests의 경우 웹 사이트에 요청을 보내고, BeautifulSoup로 원하는 정보를 가지고 왔다. 하지만 해당 방법은 동적 사이트 크롤링 등에 한계가 있다. 이를 위해 셀레니움을 사용할 수 있다. 셀레니움은 웹 어플리케이션 테스트를 위한 도구로 탄생했고, 브라우저를 띄워서 사람처럼 동작하게 만들 수 있다. 이 덕분에 스크롤될 때 데이터가 추가되는 동적 사이트 등을 크롤링 할 수 있다. 먼저 셀레니움 설치를 위해 다음 명령어를 터미널에 입력하자. pip install selenium 추가적으로 셀레니움을 이용하면서 크롤링을 진행할때 편리한 webdriver_manager를 설치하자. 셀레니움을 사용하면 크롬 브라우저 버전이 업데이트 되면 그에 맞는 크롬 드라이버를 ..
1. 사이트 분석 먼저 사이크 분석을 위해 네이버 증권 사이트에 접속한다. https://finance.naver.com/item/sise.naver?code=105560 이때 파라미터로 "105560"이라는 코드를 넘겨주는 것을 확인할 수 있다. 이 코드는 "국민은행"의 코드로 만약 다른 기업의 정보를 검색하면 해당 코드가 변경될 것이다. 따라서 우리는 해당 값을 변경함으로써 여러 기업의 주식 데이터를 수집할 수 있다. 그리고 나는 주식 데이터의 현재가에 대해 크롤링하려고 한다. 이때 현재가 값이 적힌 태그의 id는 "_nowVal"인 것을 확인했다. 해당 예제를 위해 다음과 같이 코드를 작성할 수 있다. import requests from bs4 import BeautifulSoup codesDic..
1. 기본 방법 우리가 네이버에 어떤 검색을 수행하고, 기사만 살펴보면 아래와 같은 기사들이 뜬다. 이때 해당 기사들의 제목 및 URL의 태그를 보면 class값으로 "news_tit"값을 가지는 것을 확인할 수 있다. 따라서 우리는 BeautifulSoup의 select 메서드를 활용하며 원하는 페이지의 기사들의 제목 및 url 같은 정보들을 가져올 수 있다. 예시는 아래와 같다. import requests from bs4 import BeautifulSoup response = requests.get("https://search.naver.com/search.naver?ssc=tab.news.all&where=news&sm=tab_jum&query=%EC%82%BC%EC%84%B1%EC%A0%84%..
1. HTML HTML은 웹페이지의 구조를 나타내기 위한 언어로 태그로 구성된다. 태그는 꺾쇠 괄호로 표시되며 "시작 태그"와 "종료 태그"로 이루어지며 속성명과 속성값이 있을 수 있다. 예를 들어 아래와 같은 형태를 가진다. Content 크롤링에서 자주 사용되는 태그는 다음과 같다. 태그명 역할 예 div 구역 분할 Content a 링크 Naver h1 제목 Title p 문단 Paragraph ul, li 목록 Americano Latte Tea Chamomile Peppermint 태그에는 부모 태그와 자식 태그가 있다. 예를 들어 아래와 같은 형태를 가진다. Content1 Content2 2. Requests Requests란 HTTP 통신을 위한 파이썬 라이브러리이다. HTTP 통신은 요청..