pyquery で ヤフーニュースを取得し、スクレイピングして、棒読みちゃんに渡す
pyqueryのインストール
色々つまずいて、試行錯誤したので、何が必要だったのか、よくわからない。
ソースコード
# coding=utf-8 from pyquery import PyQuery as pq import sys import os url = 'http://news.yahoo.co.jp/flash' dom = pq(url) li_items = dom('ul.listBd>li') result = set() for i, li in enumerate(li_items.items()): msg = li('p.ttl>a').text() msg = msg.encode('utf-8') # ユニコードをstrに変換する print(str(i) + '\t' + msg) try: os.system('/usr/local/etc/aquestalkpi/AquesTalkPi -g 10 "'+ msg +'" | /usr/bin/aplay -D plughw:0,0 -q') except: print('Error') if i>1: break
ヤフーニュースの速報ページ http://news.yahoo.co.jp/flash
を取得する。
引っ張ってきたい箇所が、 ul.listBd の直下の li だったので、上記のように記述してみた。
.text() で取得したデータは、type()で確認した所、ユニコードだったので、encode('utf-8') して、文字列に変えた。
print(msg)
だと、文字列に見えるので注意。
棒読みちゃんには、システム関数でそのまま渡す。
aplayは、-q (quiet mode) で動いてもらう。