collect

인터넷에서 위키 검색 정보, 날씨 정보, 뉴스 정보 를 가져올 수 있습니다.

Class: Wikipedia Weather News ExchangeRate AirQuality Trivia Country OnThisDay

class openpibo.collect.Wikipedia[소스]

기반 클래스: object

Functions: search() search_s()

위키백과에서 단어를 검색합니다.

example:

from openpibo.collect import Wikipedia

wiki = Wikipedia()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
search(search_text: str)[소스]

위키백과에서 search_text 를 검색합니다.

example:

result = wiki.search('강아지')
매개변수:

search_text (str) – 위키백과에서의 검색어

반환:

내용을 dictionary 형태로 반환합니다.

대부분의 경우 ‘0’번 항목에 개요를 표시하고, 검색된 내용이 없을 경우 None을 반환합니다.

example:

{
    '0':   {'title': '개요', 'content': ['...', ...]},
    '1':   {'title': '역사', 'content': [...]},
    '1.1': {'title': '초기 역사', 'content': [...]},
}
or None

search_s(search_text: str)[소스]

위키백과에서 search_text 를 검색합니다. (block 전용)

example:

result = wiki.search_s('강아지')
매개변수:

search_text (str) – 위키백과에서의 검색어

반환:

search 함수의 반환 값의 content만 추출한 리스트를 반환합니다.

대부분의 경우 ‘0’번 항목에 개요를 표시하고, 검색된 내용이 없을 경우 None을 반환합니다.

example:

[
    "한국어 '강아지'는 '개'에 어린 짐승을 뜻하는 '아지'가 붙은 말이다...",
    ...
]
or None

class openpibo.collect.Weather[소스]

기반 클래스: object

Functions: search() search_s()

종합 예보와 오늘/내일/모레의 날씨 정보를 검색합니다.

example:

from openpibo.collect import Weather

weather = Weather()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
region_list = {'강원': 105, '경기': 109, '경남': 159, '경북': 143, '광주': 156, '대구': 143, '대전': 133, '부산': 159, '서울': 109, '세종': 133, '울산': 159, '인천': 109, '전국': 108, '전남': 156, '전북': 146, '제주': 184, '충남': 133, '충북': 131}

날씨 정보를 검색할 수 있는 지역입니다.

search(search_region: str = '전국')[소스]

해당 지역(`search_region`)의 날씨 정보(종합예보, 오늘/내일/모레 날씨)를 가져옵니다.

example:

result = weather.search('서울')
매개변수:

search_region (str) –

검색 가능한 지역 (default: 전국)

검색할 수 있는 지역은 다음과 같습니다:

'전국', '서울', '인천', '경기', '부산', '울산', '경남', '대구', '경북',
'광주', '전남', '전북', '대전', '세종', '충남', '충북', '강원', '제주'

반환:

종합예보와 오늘/내일/모레의 날씨 및 최저/최고기온을 반환합니다.

example:

{
    'forecast': '내일 경기남부 가끔 비, 내일까지 바람 약간 강, 낮과 밤의 기온차 큼',
    'today':         {'weather': '...', 'minimum_temp': '...', 'highst_temp': '...'},
    'tomorrow':      {'weather': '...', 'minimum_temp': '...', 'highst_temp': '...'},
    'after_tomorrow':{'weather': '...', 'minimum_temp': '...', 'highst_temp': '...'},
}
or None

search_s(search_region: str = '전국', search_type: str = 'forecast', search_item: str = 'weather')[소스]

해당 지역(`search_region`)의 날씨 정보를 간단하게 가져옵니다. (block 전용)

example:

result = weather.search_s('서울')
매개변수:
  • search_region (str) – 검색 가능한 지역 (default: 전국)

  • search_type (str) – ‘forecast’ | ‘today’ | ‘tomorrow’ | ‘after_tomorrow’ (default: forecast)

  • search_item (str) –

    ‘weather’ | ‘minimum_temp’ | ‘highst_temp’ (default: weather)

    search_type이 forecast일 경우 search_item은 무시합니다.

반환:

파라미터에 따라 종합예보 혹은 날씨/최저기온/최고기온 문자열을 반환합니다. None일 경우 None 반환.

class openpibo.collect.News[소스]

기반 클래스: object

Functions: search() search_s()

JTBC 뉴스 RSS 서비스를 사용해 뉴스 자료를 가져옵니다.

example:

from openpibo.collect import News

news = News()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
topic_list = {'경제': 'economy', '국제': 'international', '뉴스랭킹': 'newsrank', '뉴스룸': 'newsroom', '문화': 'culture', '사회': 'society', '속보': 'newsflash', '스포츠': 'sports', '썰전 라이브': 'ssulzunlive', '아침&': 'morningand', '연예': 'entertainment', '정치': 'politics', '정치부회의': 'politicaldesk', '풀영상': 'fullvideo'}

뉴스 정보를 검색할 수 있는 주제입니다.

search(search_topic: str = '뉴스랭킹')[소스]

해당 주제(`search_topic`)에 맞는 뉴스를 가져옵니다.

example:

result = news.search('속보')
매개변수:

search_topic (str) –

검색 가능한 뉴스 주제 (default: 뉴스랭킹)

검색할 수 있는 주제는 다음과 같습니다:

'속보', '정치', '경제', '사회', '국제', '문화', '연예', '스포츠',
'풀영상', '뉴스랭킹', '뉴스룸', '아침&', '썰전 라이브', '정치부회의'

반환:

title, link, description, pubDate 요소가 있는 dictionary 배열입니다.

example:

[
    {
        'title':       '소방차 막은 불법주차, 이번엔 가차없이 밀어버렸다',
        'link':        'https://news.jtbc.joins.com/article/...',
        'description': '2019년 4월 소방당국의 불법주정차 강경대응 훈련 모습...',
        'pubDate':     '2021.09.03'
    },
    ...
]
or None

search_s(search_topic: str = '뉴스랭킹', search_type: str = 'title')[소스]

해당 주제(`search_topic`)에 맞는 뉴스를 간단하게 가져옵니다. (block 전용)

example:

result = news.search_s('속보')
매개변수:
  • search_topic (str) – 검색 가능한 뉴스 주제 (default: 뉴스랭킹)

  • search_type (str) – ‘title’ | ‘link’ | ‘description’ (default: title)

반환:

선택한 요소의 리스트, None일 경우 None 반환.

example:

['소방차 막은 불법주차, 이번엔 가차없이 밀어버렸다', ...]
or None

class openpibo.collect.ExchangeRate[소스]

기반 클래스: object

Functions: search() search_s()

실시간 환율 정보를 가져옵니다. (API 키 불필요)

example:

from openpibo.collect import ExchangeRate

er = ExchangeRate()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
currency_name = {'AUD': '호주 달러', 'CAD': '캐나다 달러', 'CHF': '스위스 프랑', 'CNY': '중국 위안', 'EUR': '유로', 'GBP': '영국 파운드', 'HKD': '홍콩 달러', 'JPY': '일본 엔', 'KRW': '한국 원', 'SGD': '싱가포르 달러', 'THB': '태국 바트', 'USD': '미국 달러', 'VND': '베트남 동'}

주요 통화 코드와 이름입니다.

search(base: str = 'USD')[소스]

기준 통화(base)에 대한 실시간 환율 정보를 가져옵니다.

example:

result = er.search('USD')
매개변수:

base (str) –

기준 통화 코드 (default: USD)

주요 통화 코드:

'USD'(미국 달러), 'KRW'(한국 ), 'EUR'(유로),
'JPY'(일본 ), 'CNY'(중국 위안)  ISO 4217 코드

반환:

기준 통화 대비 각 통화의 환율 dictionary를 반환합니다.

실패 시 None을 반환합니다.

example:

{
    'base':   'USD',
    'date':   '2024-03-13',
    'rates':  {'KRW': 1340.5, 'JPY': 149.2, 'EUR': 0.92, ...}
}
or None

search_s(base: str = 'USD', target: str = 'KRW')[소스]

기준 통화(base) 대비 대상 통화(target)의 환율을 반환합니다. (block 전용)

example:

result = er.search_s('USD', 'KRW')
매개변수:
  • base (str) – 기준 통화 코드 (default: USD)

  • target (str) – 대상 통화 코드 (default: KRW)

반환:

환율 float 값, 실패 시 None

example:

1340.5
or None

class openpibo.collect.AirQuality[소스]

기반 클래스: object

Functions: search() search_s()

네이버 날씨 검색을 통해 실시간 미세먼지 정보를 가져옵니다. (API 키 불필요)

example:

from openpibo.collect import AirQuality

aq = AirQuality()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
region_list = ['서울', '부산', '대구', '인천', '광주', '대전', '울산', '경기', '강원', '충북', '충남', '전북', '전남', '경북', '경남', '제주', '세종']

미세먼지 정보를 검색할 수 있는 지역입니다.

search(search_region: str = '서울')[소스]

해당 지역(search_region)의 실시간 미세먼지 정보를 가져옵니다.

example:

result = aq.search('서울')
매개변수:

search_region (str) –

검색할 지역명 (default: 서울)

검색할 수 있는 지역:

'서울', '부산', '대구', '인천', '광주', '대전', '울산',
'경기', '강원', '충북', '충남', '전북', '전남', '경북', '경남', '제주', '세종'

반환:

미세먼지 정보 dictionary를 반환합니다. 실패 시 None.

example:

{
    'pm10': '좋음',  # 미세먼지 등급
    'pm25': '보통',  # 초미세먼지 등급
}
or None

search_s(search_region: str = '서울', search_item: str = 'pm10')[소스]

해당 지역의 미세먼지 정보를 단일 값으로 반환합니다. (block 전용)

example:

result = aq.search_s('서울', 'pm10')
매개변수:
  • search_region (str) – 검색할 지역명 (default: 서울)

  • search_item (str) –

    조회 항목 (default: pm10)

    조회 가능한 항목:

    'pm10' 미세먼지 등급 (좋음/보통/나쁨/매우나쁨)
    'pm25' 초미세먼지 등급
    

반환:

해당 항목의 값 문자열, 실패 시 None

example:

'45'
'보통'
or None

class openpibo.collect.Trivia[소스]

기반 클래스: object

Functions: search() search_s()

Open Trivia DB에서 퀴즈 문제를 가져옵니다. (API 키 불필요)

example:

from openpibo.collect import Trivia

trivia = Trivia()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
category_list = {'게임': 15, '과학': 17, '동물': 27, '수학': 19, '스포츠': 21, '역사': 23, '영화': 11, '음악': 12, '일반': 9, '정치': 24, '지리': 22, '책': 10, '컴퓨터': 18}

퀴즈 카테고리 목록입니다.

difficulty_list = ['easy', 'medium', 'hard']

퀴즈 난이도입니다.

search(category: str = '일반', difficulty: str = 'easy', count: int = 1)[소스]

퀴즈 문제를 가져옵니다. (영어)

example:

result = trivia.search('과학', 'easy', 3)
매개변수:
  • category (str) –

    카테고리 (default: 일반)

    카테고리 목록:

    '일반', '책', '영화', '음악', '게임', '과학',
    '컴퓨터', '수학', '스포츠', '지리', '역사', '정치', '동물'
    

  • difficulty (str) –

    난이도 (default: easy)

    난이도 목록:

    'easy', 'medium', 'hard'
    

  • count (int) – 문제 수 (default: 1, 최대 50)

반환:

퀴즈 문제 리스트를 반환합니다. 실패 시 None.

example:

[
    {
        'question':   'What is the chemical symbol for water?',
        'answer':     'H2O',
        'options':    ['H2O', 'CO2', 'NaCl', 'O2'],  # 정답 포함 4지선다 (섞인 순서)
        'category':   '과학',
        'difficulty': 'easy',
        'type':       'multiple',  # 'multiple' or 'boolean'
    },
    ...
]
or None

search_s(category: str = '일반', difficulty: str = 'easy')[소스]

퀴즈 문제 1개를 간단하게 반환합니다. (block 전용)

example:

result = trivia.search_s('과학', 'easy')
매개변수:
  • category (str) – 카테고리 (default: 일반)

  • difficulty (str) – 난이도 (default: easy)

반환:

퀴즈 1개의 dictionary, 실패 시 None

example:

{
    'question': 'What is the chemical symbol for water?',
    'answer':   'H2O',
    'options':  ['H2O', 'CO2', 'NaCl', 'O2'],
    ...
}
or None

class openpibo.collect.Country[소스]

기반 클래스: object

Functions: search() search_s()

restcountries.com에서 국가 정보를 가져옵니다. (API 키 불필요)

example:

from openpibo.collect import Country

country = Country()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
info_list = ['name', 'capital', 'region', 'subregion', 'population', 'area', 'languages', 'currencies', 'flag', 'borders', 'timezones', 'tld', 'car_side', 'landlocked', 'latlng']

조회 가능한 항목 목록입니다.

search(search_name: str)[소스]

국가명으로 국가 정보를 검색합니다. (영어 국가명)

example:

result = country.search('korea')
result = country.search('france')
매개변수:

search_name (str) – 검색할 국가명 (영어)

반환:

국가 정보 dictionary를 반환합니다. 실패 시 None.

example:

{
    'name':       'South Korea',           # 국가명
    'official':   'Republic of Korea',     # 공식 국가명
    'capital':    '서울특별시',             # 수도 (해당 언어로 제공 시)
    'region':     'Asia',                  # 대륙
    'subregion':  'Eastern Asia',          # 소지역
    'population': 51744876,                # 인구
    'area':       100210.0,                # 면적 (km²)
    'languages':  ['Korean'],              # 공용어
    'currencies': [{'name': 'South Korean won', 'symbol': '₩'}],
    'flag':       '🇰🇷',                  # 국기 이모지
    'flag_url':   'https://flagcdn.com/kr.png',
    'borders':    ['PRK'],                 # 인접국 코드
    'timezones':  ['UTC+09:00'],
    'tld':        ['.kr'],                 # 국가 도메인
    'car_side':   'right',                 # 운전석 방향
    'landlocked': False,                   # 내륙국 여부
    'latlng':     [37.0, 127.5],           # 위경도
}
or None

search_s(search_name: str, search_item: str = 'capital')[소스]

국가 정보 중 특정 항목만 반환합니다. (block 전용)

example:

result = country.search_s('korea', 'capital')
result = country.search_s('france', 'population')
매개변수:
  • search_name (str) – 검색할 국가명 (영어)

  • search_item (str) –

    조회 항목 (default: capital)

    조회 가능한 항목:

    'name'       국가명
    'capital'    수도
    'region'     대륙
    'subregion'  소지역
    'population' 인구
    'area'       면적 (km²)
    'languages'  공용어
    'currencies' 화폐
    'flag'       국기 이모지
    'borders'    인접국 코드 목록
    'car_side'   운전석 방향 (left/right)
    'landlocked' 내륙국 여부
    'latlng'     위경도
    

반환:

해당 항목의 값, 실패 시 None

example:

'Seoul'
51744876
['Korean']
or None

class openpibo.collect.OnThisDay[소스]

기반 클래스: object

Functions: search() search_s()

Wikipedia REST API를 사용해 특정 날짜에 일어난 역사적 사건을 가져옵니다. (API 키 불필요, 영어)

example:

from openpibo.collect import OnThisDay

otd = OnThisDay()
# 아래의 모든 예제 이전에 위 코드를 먼저 사용합니다.
type_list = ['events', 'births', 'deaths', 'holidays', 'selected']

조회 가능한 유형입니다.

  • events : 역사적 사건

  • births : 이날 태어난 인물

  • deaths : 이날 사망한 인물

  • holidays : 공휴일/기념일

  • selected : Wikipedia 편집자 선정 주요 사건

search(month: int, day: int, event_type: str = 'events', count: int = 5)[소스]

특정 날짜(month/day)의 역사적 사건을 가져옵니다.

example:

result = otd.search(3, 1)           # 3월 1일 사건
result = otd.search(8, 15, 'births', 3)  # 8월 15일 태어난 인물 3명
매개변수:
  • month (int) – 월 (1~12)

  • day (int) – 일 (1~31)

  • event_type (str) –

    조회 유형 (default: events)

    조회 가능한 유형:

    'events'   역사적 사건
    'births'   이날 태어난 인물
    'deaths'   이날 사망한 인물
    'holidays' 공휴일/기념일
    'selected' Wikipedia 선정 주요 사건
    

  • count (int) – 반환 건수 (default: 5)

반환:

사건 리스트를 반환합니다. 실패 시 None.

example:

[
    {
        'year':  1919,
        'text':  'The March 1st Movement begins in Korea...',
        'pages': ['March 1st Movement', 'Korea'],  # 관련 Wikipedia 문서
    },
    ...
]
or None

search_s(month: int, day: int, event_type: str = 'events')[소스]

특정 날짜의 역사적 사건 1개를 반환합니다. (block 전용)

Wikipedia 선정 주요 사건(selected) 중 첫 번째 항목을 반환합니다.

example:

result = otd.search_s(3, 1)
result = otd.search_s(8, 15, 'births')
매개변수:
  • month (int) – 월 (1~12)

  • day (int) – 일 (1~31)

  • event_type (str) – 조회 유형 (default: events)

반환:

'[연도] 사건 내용' 형식의 문자열, 실패 시 None

example:

'[1919] The March 1st Movement begins in Korea...'
or None