[TECHIT] 실시간 IT 뉴스 정보 가져오기 - 함수, 파일, datetime, BeautifulSoup, Requests

Jaeyoung·2022년 10월 18일
0

🦁멋사 ai 7기 TIL

목록 보기
2/7

목표 설정

  • 프로그램의 입출력과 관련된 함수 이해하기
  • 프로그램의 결괏값을 파일write, read, add 해 보기
  • datetime, BeautifulSoup, requests 라이브러리 이용하여 실시간 IT 뉴스를 확인하기

함수

똑같은 내용을 반복해서 작성할 때, 하나의 함수로 정의해두면 편리하게 사용할 수 있음

함수에는 매개변수전달인자(인수)가 있다.

  • keywords 인자 : ** 두 개 (딕셔너리 형태로 전달)
  • arguments 인자 : * 한 개 (리스트나 튜플 형태로 전달)
** 함수에서 인자 등 정보 찾을 때
? : Docstring
?? : Source
예) range? add? 함수??

파일

프로그램이 만든 결과물은 파일을 생성하여 넣고, 넣은 내용을 읽고, 새로운 내용을 추가할 수 있다.

# 첫 번째 방법
f = open("파일명 이름", "파일 열기 모드")
f.close() # 생략해도 되지만, 열려있는 파일 객체를 닫아주는 역할을 함
# 두 번째 방법 -- with문을 사용하면 close가 자동으로 불러와짐
with open("파일명 이름", "파일 열기 모드") as 파일명_별명:
	파일을 열어 실행시킬 문장 작성
파일열기모드설명
r읽기모드 - 파일을 읽기만 할 때 사용
w쓰기모드 - 파일에 내용을 쓸 때 사용
a추가모드 - 파일의 마지막에 새로운 내용을 추가시킬 때 사용

👩🏻‍💻실시간 IT 뉴스 확인하기

코드 입력

from datetime import datetime
from bs4 import BeautifulSoup
import requests

# 네이버 it 일반 뉴스를 가져오는 함수
def scraping_it_news():
    url = "https://news.naver.com/main/list.naver?mode=LS2D&mid=shm&sid2=230&sid1=105"
    response = requests.get(url, headers={"user-agent": "Mozilla/5.0"})
    soup = BeautifulSoup(response.text, 'html.parser')

    # html 을 텍스트로 가져오고, 파일에 넣어주기
    file = open("it_news.html","w")
    file.write(response.text)   
    file.close()

    # 뉴스 헤드라인만 가져오기
    results = soup.select("dl > dt > a > img")
    headlines = []
    for result in results:
        headlines.append(result["alt"])
	
    # 오늘의 날짜 정보 가져오기
    print(datetime.today().strftime("%Y년 %m월 %d일의 네이버 IT 일반 뉴스 정보입니다.\n"))
	
    # 순서에 맞게 뉴스 출력하기
    rank = 1
    for headline in headlines:
        print(f"{rank}: {headline}\n")
        rank += 1

# 함수 호출하기
scraping_it_news()

코드 출력

2022년 10월 18일의 네이버 IT 일반 뉴스 정보입니다.

1: 카카오 "다음 메일 오늘 복구 완료 예상"

2: 원익그룹, 배터리 장비 통합법인 '원익피앤이' 11월 출범

3: 원자력硏 연구소기업 ‘서울프로폴리스’…연매출 500억 도전장

4: 인스웨이브 "PC·모바일·키오스크 연결 `유니버설 앱 플랫폼` 완성하겠다"

5: 인공지능 석학 한 자리에 모인다…삼성 AI 포럼 개최

6: "40억 주인공은 누구?"…스타트업 50여곳 경쟁 벌인다

7: SK텔레콤, ZEM 업그레이드…'습관 리포트' 추가

8: 쿠카게임즈, ‘삼국지 전략판’ 게임 예능 ‘G식의 밤’ 시즌 3서 선

9: 카카오-SK C&C, '전력차단' 시점 놓고 대립…1만대 여전히 장애

10: '먹통 사태' 그날, 네이버 라인·티맵은 웃었다…카카오톡 '침울'

11: 라이엇 게임즈, 호주 워게이밍 시드니 스튜디오 인수

12: '카카오 사태' 나흘째, 완전 복구 언제쯤?…"주요 서비스 14개 중 11개 복구"

13: 알서포트, 라이브 스트리밍 서비스 '모비즌 스튜디오' 출시

14: 네이버 "판교 화재 관련 장애 모두 정상 복구"…일부 블로그 문제만 남아

15: '러쉬코리아' 20주년 쇼케이스…5800명 감탄시킨 IT와 자연주의 철학

16: LG전자, 하프코 2022서 멀티브이 아이 등 공조솔루션 선보여

17: 카카오 데이터센터 규제 한 목소리 낸 언론, 과거엔 달랐다

18: CJ ENM, 일본서 876만명에게 2030부산세계박람회 알렸다

19: [그래픽] 카카오 먹통 사태 중 대체 앱 사용시간 증가율

20: 'CES2023' 규모 두 배 확장 '역대 최대'

점프 투 파이썬 : 04장 프로그램의 입력과 출력은 어떻게 해야 할까?

profile
데이터 분린이:)

0개의 댓글