터미널에서 전자 게시판 바람에 야후 뉴스 표시

터미널에서 전자 게시판 바람에 야후 뉴스 표시



계기



BTT로 Touch Bar에 yahoo 뉴스를 표시합니다.
이쪽의 기사를 읽고, 전광 게시판풍에 흐르는 뉴스가 보고 싶어진 것이 계기입니다.

완성된 것





소스 코드



Yahoo 뉴스를 취득하려면 위의 기사를 거의 참고로
만들었습니다.
from bs4 import BeautifulSoup
import requests
import random
import time
import numpy as np

# 表示文字数
text_num = 20

url = requests.get('https://news.yahoo.co.jp/hl?c=bus')
soup = BeautifulSoup(url.content, 'html.parser')
news = soup.find_all("dt")
r = random.randrange(len(news))

# ランダムに新着ニュースを選ぶ
news_text = news[r].get_text().strip()
# 表示させるテキストのnumpy配列作成(空白で表示文字数だけ埋める)
display_text = np.array(["  "]*text_num)

print()

# ニュースを一文字ずつ追加していく
for s in news_text:
    # 1文字、左にずらす
    display_text = np.roll(display_text, -1)
    # 一番右の要素に新しい文字を入れる
    display_text[text_num-1] = s
    # 表示
    print("".join(display_text), '\r', end='')
    # 一定時間スリープ
    time.sleep(0.2)

# 文字の削除
for i in range(text_num):
    # 1文字、左にずらす
    display_text = np.roll(display_text, -1)
    # 一番右に空白を入れる
    display_text[text_num-1] = "  "
    # 表示
    print("".join(display_text), '\r', end='')
    # 一定時間スリープ
    time.sleep(0.2)


포인트



표준 출력(터미널상의 출력)으로 덮어쓰는 방법을 처음으로 했습니다.
print("".join(display_text), '\r', end='')

참고 : htps //w w. 하야-p로g라민g. 코m/엔트리/2018/04/11/181635

구현 자체는 매우 간단합니다.
단지 뉴스의 제목을 numpy 배열에 저장하고, 어긋나 가는 것뿐입니다.

정말 하고 싶었던 일



사실은 이것을 BTT에서 사용하고 touchbar에 표시하고 싶었습니다.
잘 할 것 같지 않았기 때문에 터미널에서 출력으로 전환했습니다.

실용성 전무!

좋은 웹페이지 즐겨찾기