今回は、PYTHONを使って、ホームページの読み込みをしてみたいと思います。今回は、簡単なプログラムなので、是非、最後までお付き合いください。
『Requests』、『Beautiful Soup』ライブラリについて
ホームページを読む込むことをスクレイピングと言います。PYTHONでホームページをスクレイピングをして、処理するためには、下記の2つのライブラリが必要になります。
スクレイピングで使用するライブラリは『Requests』になります。また、ホームページはHTML言語で書かれており、HTMLの言語を処理するライブラリは『Beautiful Soup』になります。
この2つのライブラリは、標準ではインストールされていないので、新たにインストールしなければなりません。もしインストールされていなければ、下記のコマンドを実施して下さい。気を付けて欲しいのは、requestsの最後の『s』、beautifulsoup4の最後の『4』を忘れないで下さい。
pip install requests pip install beautifulsoup4
スクレイピングをする内容
今回は、『Merriam Webster』という英語の辞書サイトの『Word of the day』 のページです。
このページでは、日々、英単語が更新されていきます。この更新されていく英単語だけを抜き出すプログラムを作ろうと思います。
このページのHTMLソースを見ると、<title></title>のタグの中に、英単語が含まれています。
<title>Word of the Day: 更新される英単語 | Merriam-Webster</title>
その為、<title></title>のタグを抜き出して、文字列処理で、日々更新される英単語だけを抜き出す処理をするようにプログラムを作成します。
プログラム
from bs4 import BeautifulSoup import requests htmlsite = 'https://www.merriam-webster.com/word-of-the-day' #読み込むアドレスを指定する webtext = requests.get(htmlsite) #webtextの中に読み込んだ情報が入る soup = BeautifulSoup(webtext.text, 'html.parser') #soupの中にHTML解析されたデータが入る sp1 = soup.title.text #読み込んだ情報の中でタイトルのタグを取り出す sp2 = sp1.split() #sp2をスペースで区切り、リスト化すると、最初から5番目に新しい単語が入る print(sp2[4]) #新しい単語が出力される
1,2行目:ライブラリを宣言します。
7行名:requestsを使って、ホームページの内容を読み込みます。
10行目:読み込まれた情報は、ソースコードのままの状態です。Beautiful Soupを使い、HTMLで解析された情報をsoupに入れます。これで、タグの情報抜き出すことが出来ます。
13行目:ホームページのタイトルを抜き出します。そうすると、下記の並びで文字列sp1に代入されます。
Word of the Day: 新しい単語 | Merriam-Webster
14行目:文字列sp1をスペースで分割し、sp2に代入します。そうすると、5番目に新しい単語が入っている事がわかります。
[‘Word’, ‘of’, ‘the’, ‘Day:’, ‘新しい単語’, ‘|’, ‘Merriam-Webster’]
15行目:リストの最初は[0]になるために、5番目は[4]になります。
まとめ
いかがだったでしょうか。
今回は簡単なWebスクレイピングでした。実際には、多くの情報を取得する場合に使用すると便利です。実際にホームページを開いて、個々のデータをコピペして計算するような時、Pythonで、プログラムを作ってしまえば、手作業は無くなり、作業短縮になります。
みなさんも、何か、日々、確認している情報などがあれば、Pythonでプログラムを作ってみてはいかがでしょうか。
Beautiful Soupについてもっと詳しく知りたい方は下記のホームページをご覧ください。
Beautiful Soupのドキュメント
コメント