はじめに
今回Pythonの勉強をする際に、最近ニュースを見ていなかったのでニュースを読み上げてくれるプログラムを作成しようかなと考えました。間違いがありましたらコメント等で連絡ください。
この記事で行うことはWebスクレイピングを用いてWebサイトの情報を取るところまでやります。
目次
環境
Webスクレイピングをしてみた
sampleを作成した
まとめ
参考文献
環境
以下の環境で動かしています
項目 | 値 |
---|---|
CPU | Core i5-8265U |
Ubuntu | 20.04 |
WindowsやGoogle Colaboratoryなどでも出来ますが、Ubuntuの方が個人的に好き(使いやすい)なので今回はUbuntuで進めていきます。また、今回はGoogle NewsとVOICEVOXを用いて動かしてみようと思います。
Webスクレイピングをしてみた
Webスクレイピングとは、サイトにある写真や文字などを抽出するコンピュータソフトウェア技術のことをいいます。
今回はPythonのRequests_HTMLを使ってWebサイトから情報を抽出していきます。RequestsだとWebサーバで最終的にHTMLを作成するが、リアルタイムで更新するWebサイトはブラウザのエンジンで最終構築をするためWebサーバ内でできたHTMLをダウンロードしても違う内容が出てくるからです。
sampleを作成した
早速スクレイピングでWebサイトからデータを取得します。今回はsampleを作ってみました。sampleを実行する前にpipでRequests_HTMLをインストールします。
$ pip install requests_html
sampleです。
#モジュールをインポート
from requests_html import HTMLSession
#インスタンス化
session = HTMLSession()
#URL先のデータを取得
url = 'https://news.google.com/home?hl=ja&gl=JP&ceid=JP:ja'
r = session.get(url)
#URLのHTMLをテキストに変換
r = r.text
#出力
print(r)
これを実行するとGoogle NewsのHTMLで書かれているものが出てきます。
ファイルはGitHubで公開しているのでクローンしたり、ダウンロードして使ってください。
まとめ
今回は、スクレイピングを書きました。次回はスクレイピングで持ってきたHTMLからニュースのタイトルだけ抜き出してみようと思います。コードは書けているのですが、記事を書くのが難しい...
なので、書き終わるまで色々なWebサイトをスクレイピングしてみてください(スクレイピングを禁止しているWebサイトもあるので注意してください。)
参考文献
PythonでWebスクレイピングをする方法を解説!【入門編】
requestsで取得できないWebページをスクレイピングする方法
図解!PythonでWEB スクレイピングを極めよう!(サンプルコード付きチュートリアル)