第3回 PythonでWEBスクレイピング→特定の部分のみ抽出

おはようございます!KUROMAMEです。

今日も頑張りましょう!!!

本日は特定の部分のみを抽出する方法です。

前回までのコードはこちらです↓

1.import requests

2.res = requests.get('収集したいページのURL')

3.#print(res.text)

4.with open('保存したいhtml名(今回はyahoo.html)','w',encoding="utf-8")as file:

これで特定のページの情報をHTMLに保存できましたね。

でも、仕事で使ったり趣味で何かをするのであれば、

こんなに情報はいらないですね(-_-;)

特定の要素のみを抽出していきます。

前回に引き続きyahooのトップページを抽出します。

まず、ctrl+shift+iを押し、デベロッパーツール画面を開きます。

スクリーンショット 2020-11-08 063502

↑こんな感じの画面が表示されましたね

これはWEBページのHTMLやCSS情報を見ることができる画面です。

詳細を見たい方はこちらをどうぞ

ざっと下記のコードで取得できます。

import requests, bs4
res = requests.get('https://www.yahoo.co.jp/')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, "html.parser")
elems = soup.select('.fQMqQTGJTbIMxjQwZA2zk')
for elem in elems:
   print(elem)

すると・・・

スクリーンショット 2020-11-08 064748

こんな感じででてきました。

詳細を説明します。

まず先ほどのデベロッパーツール画面にて、

画像の〇で囲んだ←部分をクリックし、抽出したい部分にカーソルを

合わせます。 今回はトップのニュース部分です。

Inkedスクリーンショット (18)_LI

するとカーソルを合わせた下に、ニュースのHTML情報が表示されます。

右側にも表示されますね。そのHTML部分をコピーし、

上記コード内の↓に入力

elems = soup.select('ここにHTML情報を入力')

今回はclassの情報を抜いているため、必ず先頭に「.」を入れます。

id属性は「#」を入れますのでお忘れなく!

詳細を勉強したい方は↓がおすすめ

話は戻りますが、先ほどのように取得したHTML情報を入力することに

よって部分的に情報を抜き取れます。

簡単でしたが、また続きは次回のお楽しみで

この記事が気に入ったらサポートをしてみませんか?