第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)
するとこんな感じで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」というファイルが作成され、
こんな感じのファイルができました。
※わかりやすいようにメモ帳(テキストエディタ)で開いています。
ただ、これだとまだ使用しづらいですね。
複数行に分けて表示しますね。
下記のコードです。
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
太字の部分を変更しているので確認してくださいね。
すると、
こんな感じで少しは使いやすいデータになりましたね。
ただ、HTML情報などが載っていると見づらいので
次は文字情報のみ抜き取れるようにしましょう。
続きは次回のお楽しみです。
この記事が気に入ったらサポートをしてみませんか?