Pythonでウェブサイトからデータを入手する(9)

python Python

過去8回分の記事の内容でウェブサイトからデータを入手するプログラムを書くことはできます。
しかし、困ったことがありました。

データをファイルに書き込みしたときの問題点

ウェブサイトから(1)郵便番号・(2)住所・(3)名称を取得したとします。
それらをファイルに書き込むと、

XXX-XXXX
〇〇県××市●●町1-2-3
△△総合病院
XXX-XXXX
●●県〇〇市■■区××11-1
〇〇クリニック

となります。
データを取得すると、もれなく末尾に改行がついてきます。(@@
しかし、上記の形式だと面倒です。

できれば↓こんな感じがよいです。

XXX-XXXX  〇〇県××市●●町1-2-3      △△総合病院
XXX-XXXX  ●●県〇〇市■■区××11-1  〇〇クリニック

そこで改行をタブに置き換えすることにしました。
ExcelやVBAでもそういう関数はあるので、Pythonでも同じような機能はあるやろと思ったらありましたよ。(^^)v

Pythonではreplceメソッドを使います。
変数.replace(置き換え前の文字列, 置き換え後の文字列)の形式で実現できます。replaceメソッドの引数も分かりやすいですね。置き換え前と後を置くだけでOKですから。

moji_mae = "りんご\nみかん"
moji_ato = moji_mae.replace("\n","\t")
print(moji_mae) # りんご(改行)みかんと表示
print(moji_ato) # りんご(タブ)みかんと表示

replaceメソッドのおかげで、改行問題はクリアできました。

スクレイピングをするさいのマナー

このプログラムを作るさいにいちばん参考にした「Python2年生スクレイピングのしくみ」にありました。
ひたすらアクセスすることでウェブサーバに迷惑をかけないようにすることが必要です、とのことです。

そこで1件分データを取得したら、次のデータを取得するまでにプログラムを一時停止します。
これを実現するためにtimeモジュールのsleep関数を使います。

import time # timeモジュールをインポート
#処理
time.sleep(3)

sleep関数の引数は一時停止する時間を秒単位で指定します。3秒間一時停止する場合「3」と入力します。
これだけで実現できてしまいます。Pythonは初心者にも分かりやすい言語ですね。

コメント

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