Pythonのスクレイピングでニュースの最新記事一覧を取得する

“Pythonのスクレイピングで「ニュースの最新記事一覧を取得する」について説明しています。Beautiful Soupライブラリを使って。

前回こちらのコンテンツにて「idやclassで検索範囲を絞り込んで要素を取得し表示する」ことを「soup.find(id=”id名”)」で学びました。

そして自作のサンプルより取得し表示することができました。

今度は本物のページを使用し、そこから最新記事一覧を取得してみたいと思います。

Yahoo Japanを使用してみます

デベロッパーツール(開発者ツール)を使おう

グーグルクロームでURLを開くと、右上に「:」ボタンをクリックして「その他のツール」から「開発者ツールまたはデベロッパーツール」を開きます。 省略して「F12」ボタンでも大丈夫です。

対応しているHTMLを調べよう

トップ記事の内容については、右側のHTMLを確認すると「id=”tabpanelTopics1″」となっています。


検索範囲を絞り込んで要素を取得し表示させてみよう。

import requests
from bs4 import BeautifulSoup

load_url = “https://www.yahoo.co.jp/”
html = requests.get(load_url)
soup = BeautifulSoup(html.content, “html.parser”)

chapter2 = soup.find(id=”tabpanelTopics1″)
for element in chapter2.find_all(“a”):
    print(element.text)

解説

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円程ならコスパよく、買っておいてよかったと満足してます。


わからないことはプロフェッショナルから学ぶのが一番

キャリアアップに必要なスキルを取得しよう。

オンラインで受講ができるスクールですので、全国どこからでも。