728x90

 

문제 설명

  1. 주어진 정수 N에 따라 아래와 같은 형태의 별(*)을 출력해야 합니다:
    • N=5 일 때:
          *
         ***
        *****
       *******
      *********
       *******
        *****
         ***
          *
       
  2. 이 문제는 중앙을 기준으로 대칭적인 피라미드 모양을 출력하는 문제입니다.

문제 해결 전략

  1. 첫 번째 피라미드 (위쪽 절반):
    • i-번째 줄에 출력되는 별의 개수는 2i−1
    • 공백의 개수는 N−i
  2. 두 번째 피라미드 (아래쪽 절반):
    • i-번째 줄(위 절반 이후)의 별의 개수는 2(N−i)−1
    • 공백의 개수는 i−N
  3. 이를 반복문으로 처리하여 출력합니다.

코드 구현

N = int(input())  # 입력값

# 위쪽 피라미드
for i in range(1, N + 1):
    print(" " * (N - i) + "*" * (2 * i - 1))

# 아래쪽 피라미드
for i in range(N - 1, 0, -1):
    print(" " * (N - i) + "*" * (2 * i - 1))

 


코드 설명

위쪽 피라미드:

  • i-번째 줄에서:
    • " " * (N - i) → 왼쪽 공백 출력.
    • "*" * (2 * i - 1) → 별 출력.
  • 예를 들어 N=5일 때:
    *
   ***
  *****
 *******
*********

 

아래쪽 피라미드:

  • i-번째 줄에서:
    • " " * (N - i) → 왼쪽 공백 출력.
    • "*" * (2 * i - 1) → 별 출력.
  • i N−1부터 1까지 감소시키면서 처리.
  • 예를 들어 N=5일 때:
 *******
  *****
   ***
    *

 

출력:

  • 두 반복문을 순차적으로 실행하여 최종 출력물을 완성합니다.

시간 복잡도

  • 각 반복문은 O(N)으로 실행됩니다.
  • 전체 시간 복잡도는 O(N)+O(N)=O(N)

자주 하는 실수

  1. 공백과 별의 관계를 잘못 설정:
    • 공백의 개수는 N−i이고, 별의 개수는 2i−1임을 놓치면 출력 형식이 잘못됩니다.
  2. 아래쪽 피라미드의 시작을 으로 설정:
    • 아래쪽 피라미드는 부터 시작해야 정상적으로 대칭 구조를 유지합니다.

 

728x90
반응형
728x90

 

백준 1316번 문제: 그룹 단어 체커


문제 설명

  1. 그룹 단어란, 단어에 포함된 문자들이 각각 연속해서 나타나는 경우를 말합니다.
    • 예: happy, new, year는 그룹 단어.
    • 예: abc, aab는 그룹 단어.
    • 예: aabbcc, abca는 그룹 단어가 아님 (abca에서 a가 떨어져 다시 등장).
  2. 입력으로 주어진 단어들이 그룹 단어인지 판단하고, 그룹 단어의 개수를 출력합니다.

문제 해결 전략

  1. 문자 등장 순서 추적:
    • 단어를 한 글자씩 순회하며, 이미 등장한 문자와 현재 문자가 연속적인지 확인합니다.
    • 이전 문자와 같으면 계속 진행.
    • 이전 문자와 다르지만 이미 등장했던 문자라면 그룹 단어가 아님.
  2. 각 단어를 독립적으로 처리:
    • 주어진 단어마다 독립적으로 판단.
    • 결과적으로 그룹 단어인 단어의 개수를 세면 됩니다.

코드 구현

def is_group_word(word):
    seen = set()  # 등장한 문자를 저장할 집합
    prev_char = None  # 이전 문자를 저장

    for char in word:
        if char != prev_char:  # 이전 문자와 다를 때
            if char in seen:  # 이미 등장했던 문자면 그룹 단어 아님
                return False
            seen.add(char)  # 새로운 문자를 추가
        prev_char = char  # 이전 문자를 갱신

    return True  # 모든 문자가 조건을 만족하면 그룹 단어

# 입력 처리
n = int(input())  # 단어 개수
count = 0

for _ in range(n):
    word = input()
    if is_group_word(word):  # 그룹 단어라면 카운트 증가
        count += 1

print(count)

코드 설명

  1. is_group_word 함수:
    • seen 집합:
      • 등장했던 문자를 저장합니다.
    • prev_char 변수:
      • 현재 문자와 이전 문자가 연속인지 판단하는 데 사용합니다.
    • 문자 순회 중:
      • 이전 문자와 다르고, 이미 등장한 문자라면 그룹 단어가 아님.
      • 새로운 문자는 seen 집합에 추가합니다.
  2. 단어 입력 및 판별:
    • 주어진 n개의 단어를 하나씩 판별.
    • 그룹 단어라면 count를 증가시킵니다.
  3. 결과 출력:
    • 그룹 단어의 총 개수를 출력합니다.

입출력 예시

입력:

3
happy
new
year

출력:

3

입력:

4
aba
abab
abcabc
a

출력:

1

 

풀이 과정:

  1. aba: a  b  a (떨어진 a가 다시 등장 → 그룹 단어 아님).
  2. abab: a  b  a (떨어진 a가 다시 등장 → 그룹 단어 아님).
  3. abcabc: a  b  c → 다시 a 등장 (그룹 단어 아님).
  4. a: 한 글자이므로 그룹 단어.

시간 복잡도

  • 단어 개수: n
  • 단어의 평균 길이: m
  • 각 단어를 순회하므로 전체 시간 복잡도는 O(n⋅m)

자주 하는 실수

  1. 이미 등장한 문자를 확인하지 않음:
    • 떨어진 문자가 다시 등장할 경우를 확인하지 않으면 틀린 결과가 나옵니다.
  2. 이전 문자와 연속된 경우를 놓침:
    • 이전 문자와 연속된 경우는 문제없으므로 조건을 명확히 처리해야 합니다.

 

728x90
반응형
728x90

 

백준 1193번 문제: 분수찾기


문제 설명

  1. 양의 정수를 순서대로 분수에 배치하여 다음과 같은 규칙을 따릅니다:
    • 1/1 → 1/2 → 2/1 → 3/1 → 2/2 → 1/3 → ...
  2. 주어진 정수 X에 대해, 번째에 해당하는 분수를 구해야 합니다.

문제 해결 전략

  1. 규칙 분석:
    • 분수는 대각선 그룹으로 나뉩니다.
    • 그룹 1: 1/1 (1개)
    • 그룹 2: 1/2,2/1 (2개)
    • 그룹 3: 3/1,2/2,1/3 (3개)
    • 그룹 : n개의 분수로 이루어짐.
  2. 그룹 번호 찾기:
    • X번째 분수는 어느 대각선 그룹에 속하는지 알아야 합니다.
    • 그룹 n까지의 합은 삼각수: sum=1+2+3+⋯+n=n(n+1) / 2
    • 가 포함되는 그룹 n n(n+1) / 2 ≥ X일 때 찾을 수 있습니다.
  3. 해당 그룹에서의 위치 계산:
    • 그룹 의 시작 번호는 (n−1)n / 2 + 1
    • 는 그룹의 시작 번호로부터 몇 번째에 위치하는지 계산합니다.
  4. 분수 방향:
    • 그룹 번호가 홀수: 분자 감소, 분모 증가.
    • 그룹 번호가 짝수: 분자 증가, 분모 감소.

코드 구현

X = int(input())  # 입력값 X

# 그룹 번호 찾기
group = 1
while X > group * (group + 1) // 2:
    group += 1

# 해당 그룹에서의 위치
start_of_group = (group - 1) * group // 2 + 1
position_in_group = X - start_of_group

# 분수 계산
if group % 2 == 0:  # 짝수 그룹
    numerator = 1 + position_in_group
    denominator = group - position_in_group
else:  # 홀수 그룹
    numerator = group - position_in_group
    denominator = 1 + position_in_group

print(f"{numerator}/{denominator}")

코드 설명

  1. 그룹 번호 찾기:
    • 그룹 번호는 n(n+1) / 2 ≥ X 조건을 만족할 때까지 증가시킵니다.
  2. 그룹 시작 번호:
    • 그룹 n의 시작 번호는 (n−1)n / 2 +1 로 계산합니다.
  3. 그룹 내 위치:
    • 가 그룹에서 몇 번째인지 계산:
      position_in_group = X - start_of_group
  4. 분수 계산:
    • 짝수 그룹이면 분자가 증가하고 분모가 감소.
    • 홀수 그룹이면 분자가 감소하고 분모가 증가.

입출력 예시

입력:

14

출력:

2/4

 

풀이 과정:

  1. X = 14 → 그룹 5에 속함 (5(5+1) / 2 = 15)
  2. 그룹 5의 시작 번호: (5−1)5 / 2 + 1 = 11
  3. 그룹 내 위치: 14 − 11 = 3
  4. 그룹 5는 홀수 그룹 → 분자 = 5−3=2, 분모=1+3=4
728x90
반응형
728x90

 

1

 

https://www.acmicpc.net/problem/1157

 


 

문제

알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다.

입력

첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다.

출력

첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 대문자로 출력한다. 단, 가장 많이 사용된 알파벳이 여러 개 존재하는 경우에는 ?를 출력한다.

 

 


 

[ 테스트 코드 ]

x = input()

xList = list(x.upper())

print(xList)

# 주어진 리스트
letters = ['M', 'I', 'S', 'S', 'I', 'S', 'S', 'I', 'P', 'I']

# 빈 딕셔너리로 개수 세기
counts = {}

for letter in letters:
    counts[letter] = counts.get(letter, 0) + 1

# 중복된 값 추출
duplicates = {key: value for key, value in counts.items() if value > 1}

print(duplicates)  # 출력: {'I': 4, 'S': 4}


data = input().upper()

max_char = max(set(data), key=data.count)
max_count = data.count(max_char)

if sum(1 for char in set(data) if data.count(char) == max_count) > 1:
    print('?')
else:
    print(max_char)

 

여기서 중요했던 요점은 문자를 대문자로 변형하고 중복 값을 체크 하는 것이다.

 

[ 결과 코드 ]

data = input().upper()

max_char = max(set(data), key=data.count)
max_count = data.count(max_char)

if sum(1 for char in set(data) if data.count(char) == max_count) > 1:
    print('?')
else:
    print(max_char)

 

그리고 코드를 조금 더 간결하게 짤 방법을 찾았고

 

요점은

가장 많이 등장하는 문자를 찾고 해당 문자의 수를 체크한다.

그리고  많이 나오는 문자의 수가 여러 개인지 확인하는 것까지 코드로 완성하였다.

728x90
반응형
728x90

1

 

오늘은 뉴욕타임즈의 기사 데이터를 수집해 보겠습니다.

 

https://developer.nytimes.com/

 

https://developer.nytimes.com/

 

developer.nytimes.com

 

먼저 뉴욕타임즈의 API를 가지고 와야합니다.

회원가입을 해준다음

 

 

회원 가입이 완료되면 API Key를 받아야 합니다.

그러기 위해서 자신의 정보를 눌러 Apps를 눌러 NEW APP을 생성해주세요.

 

 

그 다음에는

App Name 과 Description을 자신이 알기 편하게 작성 후

Most Popular API를 Enable 클릭해줍니다.

 

저희는 가장 인기있는 기사들을 크롤링 해올 예정이니깐요

클릭하시고 Save를 해주시면 됩니다.

그러면 API Key를 받으실 수 있습니다.

 

 

그럼 이 API key를 복사해준 다음

 

2

 

파이썬으로 로직을 짜보겠습니다.

 

 

 

뉴욕 타임즈에서 API 활용하는 방법에 대해 나와있는데요

항상 해당 사이트에서 제공하는 Document는 읽어보시는게 좋습니다.

차근 차근 읽어보시면 누구나 다 하실 수 있습니다.

 

Get most emailed articles for the last day: 지난 하루 동안 가장 많이 이메일로 전송된 기사

/emailed/1.json

 

Get most shared articles on Facebook for the last day: 지난 하루 동안 Facebook에서 가장 많이 공유된 기사

/shared/1/facebook.json

 

Get most viewed articles for the last seven days: 지난 7일간 가장 많이 본 기사

/viewed/7.json

 

그리고 .json 앞에 있는 숫자는 기간을 뜻합니다.

원하시는 기간을 적으시면 됩니다.

 

파이썬 코드는 아래와 같이 간단합니다.

import requests

# API 키와 엔드포인트 설정
api_key = 'API_KEYS를 복사해서 여기에 넣으시면 됩니다.'
 
 

# API 요청
response = requests.get(url)
if response.status_code == 200:
    data = response.json()
 
    for article in data['results']:
        print(f"Title: {article['title']}")
        print(f"URL: {article['url']}\n")
 
else:
    print(f"Failed to fetch data. Status code: {response.status_code}")

 

Result 결과값 : 

 

오늘의 결과값들이 나왔는데요

 

여기서 좀 더 추가해서 해보겠습니다.

 

Most News에서 Title을 한글로 번역하는 로직을 추가해보겠습니다.

 

 

pip install deep-translator

 

먼저 터미널에서 라이브러리를 추가해주세요.

 

그리고 

 

from deep_translator import GoogleTranslator

 

# 번역 수행
        translated_title = GoogleTranslator(source='en', target='ko').translate(original_title)

 

로직을 추가하겠습니다.

 

 

그럼 이렇게 한글로 해석되는 제목까지 나오게 됩니다!

 

마지막 최종 코드입니다.

import sys
import io
import requests
from deep_translator import GoogleTranslator

# 출력 스트림의 기본 인코딩 설정
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')

# API 키와 엔드포인트 설정
api_key = 'Your API KEY'
url = f'https://api.nytimes.com/svc/mostpopular/v2/viewed/1.json?api-key={api_key}'

# API 요청
response = requests.get(url)
if response.status_code == 200:
    data = response.json()
    for article in data['results']:
        original_title = article['title']  # 원본 제목
        # 번역 수행
        translated_title = GoogleTranslator(source='en', target='ko').translate(original_title)
        print(f"Original Title: {original_title}")
        print(f"Translated Title: {translated_title}")
        print(f"URL: {article['url']}\n")
else:
    print(f"Failed to fetch data. Status code: {response.status_code}")

 

감사합니다.

728x90
반응형
728x90

 

1

 

가장 쉽고 빠르게 구글 트랜드에서 실시간 검색 키워드 가져오는 방법

 

먼저 Test 겸 키워드를 넣어서 가져오겠습니다.

 

import sys
from pytrends.request import TrendReq
import time

 

 

  • sys: 파이썬 인터프리터와 관련된 시스템 기능을 다룹니다. 이 코드에서는 출력 인코딩을 설정하기 위해 사용합니다.
  • pytrends.request.TrendReq: PyTrends 라이브러리의 핵심 클래스입니다. 이를 통해 구글 트렌드 데이터를 요청할 수 있습니다.
  • time: 일정 시간 간격으로 요청을 보내기 위해 사용합니다. 구글 트렌드에서 너무 많은 요청을 보내면 차단될 수 있으므로 간격 조정이 중요합니다.

 

 

# UTF-8 인코딩 출력
sys.stdout.reconfigure(encoding='utf-8')

 

 

  • 파이썬의 출력 스트림(sys.stdout)의 기본 인코딩을 UTF-8로 변경합니다.
  • 한국어 출력이 깨지지 않도록 해줍니다.
  • 이 설정이 없으면 터미널이나 로그에서 한글이 ����처럼 깨져 보일 수 있습니다.

 

 

# PyTrends 설정
pytrends = TrendReq(hl='ko', tz=360)

 

TrendReq 초기화: 구글 트렌드 데이터를 요청하기 위해 PyTrends 객체를 생성합니다.

  • hl='ko': 데이터를 한국어로 가져옵니다.
  • tz=360: 한국 시간(UTC+9)을 기준으로 데이터를 처리합니다.

 

# 키워드 리스트
keywords = ['파이썬', '머신 러닝']

 

그럼 Test로 원하는 키워드를 배열로 가져오겠습니다.

검색 해보고 싶은 키워드를 배열에 담으면 됩니다.

 

for keyword in keywords:
    try:
        pytrends.build_payload([keyword], timeframe='today 1-m')
        data = pytrends.interest_over_time()
        print(data)  # 한글 출력
        time.sleep(60)
    except Exception as e:
        print(f"Error : {keyword} - {e}")
        time.sleep(120)

 

그리고 반복문을 통해서 배열의 담긴 키워드 들을 다 조사를 할 예정입니다.

 

 

  • build_payload: 구글 트렌드 데이터 요청을 설정하는 메서드입니다.
    • [keyword]: 현재 반복문에서 처리 중인 키워드를 지정합니다.
    • timeframe='today 1-m': 최근 1개월 데이터를 요청합니다.
  • timeframe을 조정하면 원하는 기간의 데이터를 분석할 수 있습니다. 예를 들어:
    • 최근 1개월: 'today 1-m'
    • 최근 1일: 'now 1-d'

 

 

  • interest_over_time(): 요청한 키워드의 시간에 따른 관심도 데이터를 가져옵니다.
  • 반환된 데이터는 팬더스(DataFrame) 형식으로 제공됩니다.
  • 이 데이터를 엑셀 파일로 저장하거나 시각화 라이브러리로 그래프를 그릴 수 있습니다.

 

 

  • 요청 간격을 60초로 설정합니다.너무 많은 요청을 빠르게 보내면 구글에서 IP를 차단할 수 있습니다.
  • 적절한 간격을 두는 것이 중요합니다.

 


 

2

 

Test.py

 

[ 최종 코드 ]

# UTF-8 인코딩 출력
sys.stdout.reconfigure(encoding='utf-8')

# PyTrends 설정
pytrends = TrendReq(hl='ko', tz=360)

# 키워드 리스트
keywords = ['파이썬', '머신 러닝']

for keyword in keywords:
    try:
        pytrends.build_payload([keyword], timeframe='today 5-y')
        data = pytrends.interest_over_time()
        print(data)  # 한글 출력
        time.sleep(60)
    except Exception as e:
        print(f"에러 발생: {keyword} - {e}")
        time.sleep(120)

 


 

3

 

import sys
import io

# 출력 스트림의 기본 인코딩 설정
sys.stdout = io.TextIOWrapper(sys.stdout.detach(), encoding='utf-8')
sys.stderr = io.TextIOWrapper(sys.stderr.detach(), encoding='utf-8')

# 테스트 출력
print("한글 테스트")

from pytrends.request import TrendReq
import pandas as pd
import matplotlib.pyplot as plt

# pytrends 객체 생성
pytrends = TrendReq(hl='ko', tz=360)

# 실시간 급상승 검색어 가져오기
trending_searches = pytrends.trending_searches(pn='south_korea')
keywords = trending_searches[0].tolist()[:5]  # 상위 5개의 급상승 검색어
print("실시간 급상승 검색어:", keywords)

 

 

테스트는 끝났으니 이제 실시간 급상승 하는 키워드를 수집할 수 있는 로직을 새로 짜겠습니다.

임의의 키워드 대신 구글 트랜드에서 실시간으로 하는 검색어들을 수집해 추출하는 방식으로 코드를 짰습니다.

 

 

현재 시각으로 나오는 구글 트랜드 분석은

['지금 거신 전화는', '빅뱅', 'K리그1', '스타레일', '세븐틴']

이렇게 나옵니다.

 

나중에는 이러한 방법으로 사람들의 관심사를 가지고 포스팅 할 수도 있다고 생각합니다.

그러면 블로그의 유입하는 사람들도 많아질 수 있다고 생각합니다

 

감사합니다.

 

 

728x90
반응형
728x90
[Python]



Python을 Visual Studio Code에서 개발 환경 세팅 하는 방법 알려드리겠습니다.

 

요즘 파이썬으로 코딩 하는 게 재미있어서 집에서 환경 세팅하고 연습 좀 할려고 합니다

코딩 테스트 하기에도 가장 접근성이 좋은 언어라 앞으로도 배워놓으면 참 좋을 것 같습니다.

 

잘 정리했으니

천천히 따라오시면 됩니다~

 


 

1

 

먼저 파이썬 홈페이지 접속해서 Python을 설치해야 합니다.

 

https://www.python.org/

 

Welcome to Python.org

The official home of the Python Programming Language

www.python.org

 

 

홈페이지에 접근 하시면 자신의 OS 환경에 맞는 것을 선택해주시면 됩니다.

 

 

-

저는 Windows 환경이라 Window 환경으로 다운 받습니다.

 

 

installer 눌러서 다운 받으면 됩니다.

 

그리고 나서 install 해주시면 설치 창이 뜹니다.

 

 

 

/*** Add python.exe to PATH ***/ 이 부분을 추가해주셔야 환경 변수를 추가해주는 겁니다.

 

 

 

Option은 다 선택해주시면 됩니다.

 

 

그리고 파이썬 경로는 편한 곳으로 세팅하는 게 좋습니다.

 

 

그러면 무난하게 파이썬 설치는 다 끝났습니다.


 

2

 

그리고 나서 VS Code 설치를 하도록 하겠습니다.

 

https://code.visualstudio.com/\

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

vs code에 접근해서 다운로드 해줍니다.

 

 

동의하기~!

 

 

/*** PATH 추가 ***/ 여기도 이 부분을 추가해주셔야 환경 변수를 추가해주는 겁니다.

 

 


 

3

 

VS Code 마켓에서 이제 파이썬을 연동해주시면 됩니다.

 

왼쪽에 있는 확장을 눌러주시면 됩니다.

 

그리고 Python Extension Pack을 설치해주시면 끝납니다.

 

 

그리고 VS Code에서 test.py로 

 

"Hello World!" 테스트 해줍니다.

 

 

설치 끝~

 

감사합니다!

728x90
반응형
728x90

Python을 활용한 웹 크롤링의 모든 것

웹 크롤링은 인터넷 상의 데이터를 자동으로 수집하고 분석하는 작업으로, 데이터 분석, 연구, 비즈니스 인사이트 등에 활용될 수 있습니다.

 

특히 Python은 다양한 라이브러리와 커뮤니티의 지원 덕분에 웹 크롤링을 수행하기에 최적의 언어로 꼽힙니다.

Python을 사용해 웹 크롤링을 시작하는 방법과 핵심 기술을 다루어보겠습니다.

 

 


1. 웹 크롤링의 기본 개념

 

웹 크롤링이란?

웹 크롤링은 프로그램이 웹사이트를 방문해 특정 정보를 추출하는 과정을 의미합니다.

흔히 사용되는 사례로는 상품 가격 비교, 뉴스 데이터 수집, 소셜 미디어 분석 등이 있습니다.

웹 크롤링의 작동 원리

웹 크롤러는 다음과 같은 과정을 따릅니다:

  1. HTTP 요청 보내기: URL을 통해 서버에 요청을 보냅니다.
  2. HTML 응답 받기: 서버로부터 HTML 문서를 수신합니다.
  3. 데이터 파싱: HTML 문서에서 원하는 데이터를 추출합니다.
  4. 저장: 추출한 데이터를 CSV, 데이터베이스 등에 저장합니다.

2. Python의 주요 웹 크롤링 도구

 

1) requests

requests는 HTTP 요청을 보내기 위한 라이브러리입니다. 웹페이지에 접속하여 HTML 문서를 가져오는 데 사용됩니다.

import requests

url = 'https://example.com'
response = requests.get(url)

if response.status_code == 200:
    print(response.text)  # HTML 내용 출력

 

2) BeautifulSoup

BeautifulSoup는 HTML 파싱을 돕는 라이브러리로, 특정 데이터 추출에 유용합니다.

 

from bs4 import BeautifulSoup

html = "<html><body><h1>안녕하세요</h1></body></html>"
soup = BeautifulSoup(html, 'html.parser')

print(soup.h1.text)  # "안녕하세요" 출력
 

3) Selenium

동적인 웹사이트를 크롤링할 때 사용되는 브라우저 자동화 도구입니다. 자바스크립트를 통해 생성된 데이터를 처리할 수 있습니다.

 

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('https://example.com')

print(driver.page_source)  # 렌더링된 HTML
driver.quit()

 


3. 간단한 웹 크롤링 예제

예제: 네이버 뉴스 헤드라인 가져오기

import requests
from bs4 import BeautifulSoup

url = 'https://news.naver.com/'
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

headlines = soup.select('.hdline_article_tit a')  # 네이버 뉴스의 헤드라인 CSS 클래스

for idx, headline in enumerate(headlines, 1):
    print(f"{idx}. {headline.text.strip()}")

 

 

파이썬 코드를 이렇게 작성하면 네이버 헤드라인을 뽑아올 수 있다.

728x90
반응형

+ Recent posts

728x90
반응형
728x90
반응형