【メモ】BeautifulSoup4の使い方(2) Requestsで記事の見出しを表示


インターネット上のWebサイトのhtmlには様々な情報が含まれており、自力で解析するのは難しい。そこでRequestsというhtmlを取得するライブラリを使う。

今回はMSN Japanの国内欄の記事の見出しの取得を通してRequestsの使い方を学んでいく。

In[1]BeautifulSoupとRequestsとReをimportする

In[1]
from bs4 import BeautifulSoup
import requests
import Re

In[2]変数urlshutokuにhtmlの情報を格納する

In[2]
urlshutoku = requests.get("https://www.msn.com/ja-jp")

In[3]ページ全体を表示してみる

In[3]
urlshutoku.text

In[3]を表示すると不要な情報の方が目立つので、今回必要な情報である見出しのみを表示する。そのために見出しの情報を取得しなければならない。そこで使うのがGoogleChromeのデベロッパーツールだ。

まず、見出しを右クリックし、検証(I)をクリックする。すると以下のような画面が表示される。

スクレイピングで用いるのは上記の画面の左側の英数字ばかりの情報だ。先ほど検証をクリックした部分の一番上の見出しの部分が青くなっていることを確認する。次に記事の見出しのurlに相当する<a href="/ja-jp/news/national/~">を確認する。他の見出しも同様になっているので<a href="/ja-jp/news/national/~">が手がかりになるようだ。

In[4]BeautifulSoupとhtml.parserで解析

In[4]
soup = BeautifulSoup(urlshutoku.text,"html.parser")

In[5]find_allを使って国内系の見出しを抽出

In[5]
midashi = soup.find_all(href=re.compile("/ja-jp/news/national"))

jupyternotebook上でmidashiと打つと見出しの情報が表示されるが、urlの情報も入っている。このままでは見づらいので文字だけ表示できるようにする。

In[6]for文とstringを使って文字のみ表示

In[6]
for ichiran in midashi:
    print(ichiran.string)

これで見出しのみが表示される。