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

スクレイピング準備記事


関連記事


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


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

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

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

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


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

0.概要


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

1.使用したもの


・Virtual box

https://www.virtualbox.org/

・Vagrant

https://www.vagrantup.com/

・Term Term

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

・Python3.4

・Excel

2.手順


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

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



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列にそれぞれ表示されています。

詳細

画像が見づらい場合は、以下のリンク先に移動することをおすすめします。

https://hk-ryukyu.club/hideto/archives/844

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


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

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

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

https://www.amazon.co.jp/Pythonクローリング%EF%BC%86スクレイピング-―データ収集・解析のための実践開発ガイド―-加藤-耕太-ebook/dp/B01NGWKE0P/ref=sr_1_2?s=digital-text&ie=UTF8&qid=1547444558&sr=1-2&keywords=%E3%82%B9%E3%82%AF%E3%83%AC%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0

https://www.amazon.co.jp/現場ですぐに使える%EF%BC%81-Pythonプログラミング逆引き大全-313の極意-金城俊哉-ebook/dp/B07CKW7HRT/ref=sr_1_12?s=digital-text&ie=UTF8&qid=1547444718&sr=1-12&keywords=Python

https://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%91%EF%BC%89-セットアップ・文字列・数値編-たっく-ebook/dp/B00SH9TZV6/ref=sr_1_1?s=digital-text&ie=UTF8&qid=1547444851&sr=1-1&keywords=Python+%E8%B6%85%E5%88%9D%E5%BF%83%E8%80%85

https://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%92%EF%BC%89-リスト・タプル・ディクショナリ・if・-ループ編-たっく-ebook/dp/B00UTE7IVQ/ref=pd_sim_351_1/357-6861445-6074822?_encoding=UTF8&pd_rd_i=B00UTE7IVQ&pd_rd_r=f08ac831-17bf-11e9-8614-61eb2314ce97&pd_rd_w=GVCNp&pd_rd_wg=yAeJA&pf_rd_p=b79503b3-46ea-4244-8b06-2f14c40a97b1&pf_rd_r=1AE1MZJDDH5WGG46MKQF&psc=1&refRID=1AE1MZJDDH5WGG46MKQF

https://www.amazon.co.jp/プログラミング超初心者が初心者になるためのPython入門%EF%BC%88%EF%BC%93%EF%BC%89-関数・クラス編-たっく-ebook/dp/B014MQPCZA/ref=pd_sim_351_1/357-6861445-6074822?_encoding=UTF8&pd_rd_i=B014MQPCZA&pd_rd_r=faeda057-17bf-11e9-bc59-41dcf0bf4f18&pd_rd_w=sZ3Tw&pd_rd_wg=sCE0Q&pf_rd_p=b79503b3-46ea-4244-8b06-2f14c40a97b1&pf_rd_r=0P47J0THKB3M6SXP5XWF&psc=1&refRID=0P47J0THKB3M6SXP5XWF