터미널에서 전자 게시판 바람에 야후 뉴스 표시
6761 단어 Terminal파이썬MacBeautifulSoup
터미널에서 전자 게시판 바람에 야후 뉴스 표시
계기
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에 표시하고 싶었습니다.
잘 할 것 같지 않았기 때문에 터미널에서 출력으로 전환했습니다.
실용성 전무!
Reference
이 문제에 관하여(터미널에서 전자 게시판 바람에 야후 뉴스 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/neptunium/items/dc52d9f885e580731df3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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='')
Reference
이 문제에 관하여(터미널에서 전자 게시판 바람에 야후 뉴스 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/neptunium/items/dc52d9f885e580731df3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)