【Python】スクレイピングデータをファイル出力

今回はPythonでスクレイピングしたデータをtxtやcsvに出力する方法を紹介します。

スクレイピングしたデータをtxtやcsvに出力

txtやcsvに書き出すまでの流れを紹介します。

完成ソース

import requests
import shutil
from bs4 import BeautifulSoup

url = requests.get("https://fich-labo.com/")

soup = BeautifulSoup(url.content, "html.parser")

file = open('/Users/username/Desktop/test.csv', 'w')
file.write(soup.find("div", "archives-list simple-list").text)
file.close()

下記ソースコードは、実行環境によって変更しなければいけない個所を日本語で記述してます。

import requests
import shutil
from bs4 import BeautifulSoup

url = requests.get("サイトのurl")

soup = BeautifulSoup(url.content, "html.parser")

file = open('/パス/ファイル名.拡張子', 'w')
file.write(soup.find("要素", "要素名").text)
file.close()

必要な物

  • Requests
  • Beautiful Soup

スクレイピングするには上記のライブラリが必要なので、下記コマンドをターミナルやコマンドプロンプトで実行しましょう。

ターミナル Python

pip3 install requests
pip3 install beautifulsoup4

インポート

インポートするとファイルに書き出す機能やスクレイピングの機能を読み込むことが可能です。

import requests
import shutil
from bs4 import BeautifulSoup

取得したいサイト

スクレイピングしたいサイトのURLをセットしましょう。

url = requests.get("サイトのurl")

実際にサイトを読み込む

実際に変数に入ったサイトを読み込んでいます

soup = BeautifulSoup(url.content, "html.parser")

ファイルに書き込む

  • openでファイル名と保存先を指定
  • writeで書き込み
  • soup.findでサイトのどの部分を読み込みたいか指定
  • closeで処理終了
file = open('/パス/ファイル名.拡張子', 'w')
file.write(soup.find("要素", "要素名").text)
file.close()

もしdiv class=”memo”の中身を読み込みたい場合は

file.write(soup.find("div", "memo").text)

です。

スクレイピング先の要素名を確認するには、Chromeの検証ツールなどで確認しましょう。

検証ツールで要素名を確認する方法

スクレイピングしたいサイトにアクセスしてください。

右クリックでメニューが出るので、下にある検証をクリックしくてださい。

スクレイピングしたデータをtxtやcsvに出力

現在閲覧してるサイトのソースコードが表示されるので、その中から要素名を確認してみましょう。

スクレイピングしたデータをtxtやcsvに出力

スクレイピング禁止サイトに注意

ツイッターなどクローラーの巡回を禁止しているサイトなどはスクレイピングも禁止されています。

場合によっては法的処罰を受けることもあるので注意しましょう。

Python2年生 スクレイピングのしくみ 体験してわかる!会話でまなべる! [ 森 巧尚 ]

価格:2,420円
(2022/3/4 12:33時点)
感想(1件)

スクレイピングの練習する際はこのサイトで実行しても構いません。

©Copyright2022 FICH-LABO.All Rights Reserved.