インターネット上のWebサイトのhtmlには様々な情報が含まれており、自力で解析するのは難しい。そこでRequestsというhtmlを取得するライブラリを使う。
今回はMSN Japanの国内欄の記事の見出しの取得を通してRequestsの使い方を学んでいく。
In[1]BeautifulSoupとRequestsとReをimportする
from bs4 import BeautifulSoup
import requests
import Re
In[2]変数urlshutokuにhtmlの情報を格納する
urlshutoku = requests.get("https://www.msn.com/ja-jp")
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で解析
soup = BeautifulSoup(urlshutoku.text,"html.parser")
In[5]find_allを使って国内系の見出しを抽出
midashi = soup.find_all(href=re.compile("/ja-jp/news/national"))
jupyternotebook上でmidashiと打つと見出しの情報が表示されるが、urlの情報も入っている。このままでは見づらいので文字だけ表示できるようにする。
In[6]for文とstringを使って文字のみ表示
for ichiran in midashi:
print(ichiran.string)
これで見出しのみが表示される。