【スクレイピング】CSVでの保存と文字化け修正

スクレイピング
スクレイピング準備記事
関連記事

【やりたいこと】スクレイピング後のデータを保存したい!

前回は、取得したWebページをスクレイピングすることで必要な部分(記事URLと記事タイトル)を抜き出すことに成功しました。

しかし、コマンドライン上で表示されているだけで、保存はされていません。

ということで、本記事では、スクレイピングしたデータをCSV形式で保存する方法を記載します。

【10分でできる】文字化けも問題なし!

※ダウンロード時間は10分の中に含まれていません。

0.概要

前回作成したPythonスクリプトファイルを修正します。次に、スクリプトファイルの実行とデータの保存を行います。最後に、文字化けを修正します。

1.使用したもの

・Virtual box

Oracle VM VirtualBox

・Vagrant

Vagrant by HashiCorp
Vagrant enables users to create and configure lightweight, reproducible, and portable development environments.

・Term Term

https://ja.osdn.net/projects/ttssh2/

・Python3.4

・Excel

2.手順

※下記の記事の内容を完了しているものとして、進めていきます。

【スクレイピング】仮想マシンの起動
【やりたいこと】仮想マシンを起動させたい! 今回は、初めてのスクレイピング記事になります。 スクレイピング記事の大まかな流れとしては、 仮想マシンを構築→スクレイピング 以上の流れで進めていきます。 今回は、1記事...
【スクレイピング】仮想マシンでPythonスクリプトファイルの実行
【やりたいこと】Pythonスクリプトファイルを仮想マシンで実行させたい! 前回の記事「【スクレイピング】仮想マシンの起動」の続きです。 ホストOSでPythonスクリプトファイルを実行するには、そのファイルがあるフォルダに...
【スクレイピング】urllibによるWebページの取得
スクレイピング準備記事 【やりたいこと】Webページを取得したい! 以上の記事の続きとなります。 Webページの取得は、とても簡単です。さっそくやってみましょう! 【5分でできる】URLを記入するだけ...
【スクレイピング】正規表現を使用したスクレイピング
スクレイピング準備記事 関連記事 【やりたいこと】正規表現を使って、スクレイピングしてみたい! ここからが、本題のスクレイピングになります! そもそもスクレイピングってどういう意味...

①スクリプトファイルの修正と実行

import re
from html import unescape

# 前回ダウンロードしたファイルを開き、中身を変数htmlに格納する。
with open('dp.html') as f:
blog_html = f.read()

print('url,title') #追加
# re.findall()を使って、URLと記事タイトルが含まれるHTMLを取得する。
for contain_article_title_url in re.findall(r'<a href=".*?" class="entry-card-wrap a-wrap cf" title=".*?"', blog_html, re.DOTALL):

# 記事のタイトルとURLは、a要素のhref属性とtitle属性からそれぞれ取得する。
url_title = re.search(r'<a href="(.*?)" class="entry-card-wrap a-wrap cf" title="(.*?)"', contain_article_title_url).group(1,2)

print(url_title)

 

以下の部分を追加しました。

print('url,title') #追加

追加理由は後に説明いたします。


スクリプトファイルを実行し、保存します。

python scrape_re_blog.py > url_title.csv

スクリプトファイルを実行することで表示された文字列を「url_title.csv」として共有フォルダに保存します。

実際に保存されているか確認してみましょう。


共有フォルダを確認すると、「url_title.csv」が保存されていることが分かります。

②文字化けの修正

url_title.csv」を開きます。下記の画像を見ると、文字化けしているので、修正していきます。

データタブをクリックし、「テキストまたはCSVから」をクリックします。

元のファイルの▼マークをクリックし、Unicode(UTF-8)に変更します。

変更後、「読み込み」をクリックします。

上記の画像のように、文字化けが修正されていたら成功です。

2行目にurltitleがあります。これは、スクリプトファイルに追加で記入したprint(‘url,title’)のおかげです。つまり、コマンドライン上では、以下のように表示されていたことになります。

url,title
http~~,【WordPress】~~
http~~,【WordPress】~~
~    ,  ~

コンマを境に、A列、B列にそれぞれ表示されています。

【最後に】参考図書の紹介

以下の書籍は、私がPythonスクレイピングを勉強するにあたって、使用した書籍です。

「Python逆引き大全」は、秀和システムの技術書読み放題サービス「10×Eng」で読めます。最初の2週間は無料、それ以降は、月額900円で利用できます。

「プログラミング超初心者が初心者になるためのPython入門」はkindle unlimitedで読めます。

 

コメント

タイトルとURLをコピーしました