목차
1. 주제 소개
일상생활에서 소소하게 파이썬을 활용하는 시리즈를 이어간다.
필자는 인터넷뉴스를 꽤나 많이 본다. 근래에는 포털의 메인에 노출되는 뉴스 위주로 보다 보니 특정 정치적 이슈에 관한 뉴스를 지나치게 많이 접하게 되는 것 같다는 생각이 들었다. 그래서 다양한 뉴스를 접하기 위해 종이신문에 실리는 기사들을 골고루 읽어봐야겠다고 생각했다.
네이버뉴스에서는 “신문보기” 코너가 제공된다. 종이신문과 같은 기사를 모아 인터넷에서 볼 수 있도록 하는 것 같다.
아래 페이지를 들어가 보면 각 신문사별로 1면 톱기사가 노출된다.
https://news.naver.com/newspaper/home
그리고 각 신문사의 페이지를 들어가서 보면 역시 “신문보기” 탭이 있는데, 여기에서는 해당 신문사의 종이신문 기사를 다 볼수 있다.
https://media.naver.com/press/023/newspaper
그런데 특정 신문사의 기사만 읽기보다는 여러 신문사를 골고루 읽고 싶다. 그렇다고 해서 하루에 여러 신문사의 기사를 다 읽을 시간은 없다. 그렇다면 매일 신문사를 바꿔가며 읽으면 될 것 같다.
그냥 순서를 정해 놓고 돌아가며 볼 수도 있지만, 매일 랜덤으로 신문사를 골라 해당 신문사의 “신문보기” 코너를 열어 주는 스크립트를 만들어 사용하니 오늘은 파이썬이 어떤 신문을 골라 줄까, 페이지가 열리는 동안 조금의 기대감을 느낄 수 있다.
2.스크립트 작성
코드는 채 몇 줄이 되지 않는다. 파이썬의 내장 모듈인 os와 random을 사용하고, 스마트폰에서 파이썬을 사용할 수 있는 termux를 사용한다.
먼저 우리가 접근하려는 페이지의 URL 주소를 보자. 특정 신문사의 신문보기 페이지를 들어가 보면 아래와 같이 …com/press/다음에 세 자리 숫자가 오고, 그 뒤에 /newspaper가 붙는다.
https://media.naver.com/press/023/newspaper
직관적으로 알기 쉬운 구조이다. 023은 신문사별로 달라진다.
관심 있는 신문사들의 신문보기 페이지를 들어가서 URL 주소를 확인해 목록을 작성한다. 리스트에 숫자만 담아도 되겠지만, 보기 좋게 하려고 딕셔너리로 했다.
newspapers = {
"경향": "032",
"국민": "005",
"동아": "020",
"문화": "021",
"서울": "081",
"조선": "023",
"중앙": "025",
"한겨레": "028",
"한국": "469",
"매경": "009",
"서울경제": "011",
"한경": "015"
}
여기까지만 하면 시간 걸리는 일은 이미 다 한 것이다. 이제 딱 네 줄만 더 작성하면 된다.
먼저, 신문사를 선택하는 코드이다. random 모듈의 choice 메서드를 사용한다.
신문사 번호를 리스트로 저장했다면 그 리스트를 choice 메서드의 인자로 바로 넘겨주면 되고, 필자처럼 딕셔너리로 했다면 다음과 같이 딕셔너리의 값들을 리스트로 바꾼 뒤에 넘겨준다.
import random
choice = random.choice(list(newspapers.values()))
마지막으로 os 모듈의 system 메서드를 이용해서 인터넷 브라우저로 특정 URL을 열어 주는 termux 커맨드를 실행한다.
f 스트링을 사용해서 얖에서 정한 신문사 번호를 URL 주소에 넣어 준다.
import os
os.system(f"termux-open-url https://media.naver.com/press/{choice}/newspaper")
완성된 코드는 다음과 같다. 이 스크립트를 실행하면, newspapers에 저장한 신문사들 중 한 곳의 “신문보기” 코너가 랜덤으로 열린다.
import os
import random
newspapers = {
"경향": "032",
"국민": "005",
"동아": "020",
"문화": "021",
"서울": "081",
"조선": "023",
"중앙": "025",
"한겨레": "028",
"한국": "469",
"매경": "009",
"서울경제": "011",
"한경": "015"
}
choice = random.choice(list(newspapers.values()))
os.system(f"termux-open-url https://media.naver.com/press/{choice}/newspaper")
'코딩 > Python' 카테고리의 다른 글
파이썬으로 주가 정보(주식 현재가) 가져오는 방법/한국투자증권 Rest API (1) | 2023.01.04 |
---|---|
[파이썬 활용] 사진(jpg 파일), 동영상(mp4 파일) 용량 줄이기/pillow, ffmpeg 사용 (0) | 2022.07.17 |
[파이썬 활용] 연금복권 번호 생성 프로그램(랜덤 숫자 뽑기)/randint, sample (0) | 2022.05.07 |
공공데이터포털 API 활용해 부동산 실거래가 데이터 가져오기/파이썬에서 xml 데이터 처리하는 방법 (0) | 2022.05.01 |
파이썬 함수 실행 속도를 1000배 빠르게 해주는 모듈/functools, cache 데코레이터,재귀함수, 피보나치 수열 (0) | 2022.04.23 |
댓글