세조목

TIL(Today I Learned) 94일차(24.03.19) 본문

데이터 분석 공부/TIL(Today I Learned)

TIL(Today I Learned) 94일차(24.03.19)

세조목 2024. 3. 19. 20:48

크롤링

최종 프로젝트에서 비정형 데이터를 다뤄보기위해 현재 크롤링을 학습하고 있습니다.

크롤링에 사용되는 python 라이브러리는 requests, beautifulsoup, selenium 크게 세가지입니다.

금일은 requests와 beautifulsoup만을 가지고서 학습을 진행했습니다.

import requests
from bs4 import BeautifulSoup

base_url = "https://search.naver.com/search.naver?sm=tab_hty.top&ssc=tab.blog.all&query="
keyword = input("검색어를 입력하세요 : ")

url = base_url + keyword
print(url)

headers = {
    "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36"
}

req = requests.get(url, headers = headers)

html = req.text

soup = BeautifulSoup(html, "html.parser")


# 빈 칸은 .으로 바꿔줘야 함
contents = soup.select(".dsc_link")
names = soup.select(".name")

for result in zip(contents, names):
    print("본문 : ", result[0].text)
    print("작성자 : ", result[1].text)
    print("url : ", result[1]['href']) # url 가져오기
    print()

 

위 코드가 금일 작성한 코드로

  1. 라이브러리 설치
  2. 라이브러리 불러오기
  3. url을 가지고서 데이터 불러온 후 보기 좋게 가공하기
  4. 웹사이트측에서 접근을 불허할 경우 user-agent를 건드려서 접근하는 방법

등을 진행했습니다.