Raspberry Pi 備忘録 / Mbedもあるよ!

Raspberry Pi であれこれやった事の記録

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) で動いてもらう。