第4回 PythonでWEBスクレイピング→CSVに出力

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

本日はPythonでスクレイピングした情報をCSVに出力していきます。

前回までの続きのコードはこちらです。

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)

画像1

するとこんな感じでHTML情報を取得できましたね。

ただ、このままだと仕事では使いづらいし、かっこよくないですね(-_-;)


取得した情報をCSVに出力していきます。

下記のコードです。

import csv
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')

csvlist = []
for elem in elems:
csvlist.append(elem)

f = open('yahoo.csv','w',encoding='utf-8')
writecsv = csv.writer(f,lineterminator='\n')

writecsv.writerow(csvlist)

f.close

すると、「yahoo.csv」というファイルが作成され、

スクリーンショット 2020-11-10 090419

こんな感じのファイルができました。

※わかりやすいようにメモ帳(テキストエディタ)で開いています。

ただ、これだとまだ使用しづらいですね。

複数行に分けて表示しますね。

下記のコードです。

import csv
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')

csvlist = [["","リスト"]]
num = 0
for elem in elems:
csvlist.append([num,elem])
num+=1

f = open('yahoo.csv','w',encoding='utf-8')
writecsv = csv.writer(f,lineterminator='\n')

writecsv.writerows(csvlist)

f.close

太字の部分を変更しているので確認してくださいね。

すると、

スクリーンショット 2020-11-10 090830

こんな感じで少しは使いやすいデータになりましたね。

ただ、HTML情報などが載っていると見づらいので

次は文字情報のみ抜き取れるようにしましょう。

続きは次回のお楽しみです。

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