前回こちらのコンテンツにて「idやclassで検索範囲を絞り込んで要素を取得し表示する」ことを「soup.find(id=”id名”)」で学びました。
そして自作のサンプルより取得し表示することができました。
今度は本物のページを使用し、そこから最新記事一覧を取得してみたいと思います。
Yahoo Japanを使用してみます
デベロッパーツール(開発者ツール)を使おう
グーグルクロームでURLを開くと、右上に「:」ボタンをクリックして「その他のツール」から「開発者ツールまたはデベロッパーツール」を開きます。 省略して「F12」ボタンでも大丈夫です。対応しているHTMLを調べよう
トップ記事の内容については、右側のHTMLを確認すると「id=”tabpanelTopics1″」となっています。
検索範囲を絞り込んで要素を取得し表示させてみよう。
解説
import requests | 事前にコマンドプロンプトでインストールしたインターネットにアクセス命令する外部ライブラリ「requests」、これをimportします。 |
from bs4 import BeautifulSoup | 事前にコマンドプロンプトでインストールしたHTMLを解析する外部ライブラリ「BeautifulSoup」、これが入っているbs4というパッケージからBeautifulSoupをimport |
load_url = “https://www.yahoo.co.jp/” | 変数load_urlに解析するWEBページアドレスを代入 |
html = requests.get(load_url) | 変数htmlにネット上のHTMLファイルを読み込む命令のrequests.get(load_url)を代入します。 |
soup = BeautifulSoup(html.content, “html.parser”) | 変数soupにBeautifulSoupを使ったHTML解析の命令を代入します。 |
chapter2 = soup.find(id=”tabpanelTopics1″) | 変数chapter2に指定したidの範囲を検索して代入します。 |
for element in chapter2.find_all(“a”): | for文を使い、その中のaタグをすべて表示させます。 |
print(element.text) | .textを付けて文字列だけを取り出し、データを表示します。 |
すると最新トピック一覧を取り出すことができました。これでいつでも更新すればPythonを使って、最新のトップニュースを取得できるようになりました。
*尚、ここではバージョン「Python 3.10.1」を使用しています。
この本から引用、参考に学び、完成させることができました。しかし、ここではプログラミング初心者の私が詳しく解説することは、おこがましく、難しく出来ません(ToT)
その点、この本では丁寧な解説が載っていますので、解説とともにコードを書き、完成させればより深く学ぶことができます(^.^)、実際、初心者の私でもわかりやすかったです。身に付け消えないスキルが2,000円程ならコスパよく、買っておいてよかったと満足してます。