※このページではアフィリエイト広告を利用しています

【Python応用】ITmediaの見出しタイトルのスクレイピングに挑戦してみた

Python

ここでは、「ITmedia」のニュースタイトルをスクレイピングする方法について解説しています。

この記事の対象

  • これからスクレイピングに挑戦したい方
  • 「requests」の使用方法を知りたい方
  • 「BeautifulSoup」の使用方法を知りたい方
スポンサーリンク
スポンサーリンク

行ったこと

ITmedia」のニュースタイトルをスクレイピングして上から5つ抽出して出力するプログラムを作成しました。

ITmediaのサイト

今回抽出したい情報は「h3」情報になります。ちなみに、「h3」をどのように調べたかというと、右クリックの「検証」を基に調べられます。

流れ

プログラムの大まかな流れです。

  1. requestsでhtml取得
  2. BeautifulSoupにhtml情報を渡す
  3. BeautifulSoupで解析(h3の抽出)

プログラム

from bs4 import BeautifulSoup
import requests

#1---URL指定
url = "https://www.itmedia.co.jp/news/"
#2---headers指定
headers = {"User-Agent": "*****"}
soup = BeautifulSoup(requests.get(url, headers = headers).content,'html.parser')
#3---h3の書籍タイトルの抽出
all_h3 = soup.select('h3')
for i in range(5):#5つ抽出
    cell = all_h3[i].get_text()
    print(cell)
#4---終了の合図
print('完了')

上記がプログラムになります。

それでは解説していきます。

#1---URL指定
url = "https://www.itmedia.co.jp/news/"

1の部分ではURLを指定しています。

#2---headers指定
headers = {"User-Agent": "*****"}
soup = BeautifulSoup(requests.get(url, headers = headers).content,'html.parser')

2の部分では、リクエストとレスポンスの送受信時に使用するHTTPヘッダーを指定しています。各々の環境を「確認くん」で確認して、「現在のブラウザ」を「*****」に転記してください。

次にURLとheaderをBeautifulSoupに投げています。

#3---h3の書籍タイトルの抽出
all_h3 = soup.select('h3')
for i in range(5):#5つ抽出
    cell = all_h3[i].get_text()
    print(cell)

3の部分では、ニュースのタイトルである「h3」を「select」で指定しています。次に上、for構文で5つ抽出してprintさせています。

最後に完了の文字を出力しています。

soup.select()とは

soup.select()

BeautifulSoupで文字を抽出する際に良く利用されるのが「select」メソッドになります。

「select」関数はマッチするすべての要素をリストで返してくれます。

例えば、以下だったら

要素.select('h1').string

要素から全ての「h1」を取得します。それから「string(文字)」を取得しています。

一つだけの要素抽出→「soup.select_one」

要素.select_one()

要素のなから一つだけの要素を抽出したいときに使用するのが、「soup.select_one」です。

例えば、以下だったら

要素.select_one('h1').string

要素のなから探索して最初にマッチした「h1」だけを文字として取得するというものになります。

「select」と「find」

「select」と同じような機能として「find」が存在します。findは「要素名」「属性」を引数に指定できる特徴があります。好みによりますが、findもあるということだけ記しておきます。

selectfind
全ての要素を抽出soup.select()soup.find_all()
一つだけ要素を抽出soup.select_one()soup.find()

結果

スクレイピングした結果です。

ニュースをスクレイピングして、これらの情報を加工してLineやメール送信できれば独自のRSSを作成したりできます。スクレイピングができるようになると様々な可能性が広がります。

【おすすめの書籍】

・Pythonクローリング&スクレイピング[増補改訂版] -データ収集・解析のための実践開発ガイド

スクレイピングを実践形式で学べるのでおすすめです。スクレイピングした後の加工、解析など具体的な使用方法が明示されているので、初学者におすすめの書籍です。

・あなたの仕事が一瞬で片付くPythonによる自動化仕事術 

「キノコード」で有名なエンジニアが書かれた初学者向けの書籍です。YouTubeでも学習できるので、スクレイピングだけではなく、自動化などに挑戦したい方におすすめの書籍です。

・PythonでExcel、メール、Webを自動化する本

スクレイピングした情報をExcelに保存したい、情報を送信したい。などの具体的に役立つ情報が紹介されています。mail操作が紹介されているので、スクレイピングだけではなく、広く学ぶことができる書籍です。

タイトルとURLをコピーしました