HITTOBITO

仕事

WEB制作を効率化する (2) 大量のURL の存在を確認する

2018年01月10日 

わかば

サイトの URL リストから、URL リストの存在(正確性)を確認したくなる時があります。

URLをブラウザに1個づつコピペして確認するのは、なかなかの苦行、これを自動化します。

仕様を決める

存在するかどうかは、http ステータスを見ればわかります。

http ステータスに、200 が返ってきたら「存在」、404 が返ってきたら「存在しない」ということになります。

ということなので、URL リストを CSV ファイルにして、1行づつ読み込みながら、http ステータスを取得して表示するようにしてみます。

読み込むCSV

CSV ファイルには、以下のように URL を記載します。CSV のファイル名は、url.csv とします。

URL
https://www.future-s.com
https://www.future-s.com/recruit/welfare.html
https://www.future-s.com/company/profile.html
https://www.future-s.com/uso_page.html

実行結果

URL の前に、http ステータスが表示されています。

PS C:\****> python chkurl.py
200 : https://www.future-s.com
200 : https://www.future-s.com/recruit/welfare.html
200 : https://www.future-s.com/company/profile.html
404 : https://www.future-s.com/uso_page.html

4行目が 404 になっていますので、このURLは存在しないことが分かります。

作ってみる

python スクリプト

今回は、スクレイピング周りの操作がやりやすいと聞いたので、python を使ってみようと思います。

とはいえ、python は、初めて書くのでサイトを調べていて、素晴らしい学習サイトを見つけました。

Aidemiy というサイトなんですが、python の入門教材が、とても良く出来ていて、しかも無料。

ひと通り講座を終わらせたら、なんとなく書けるようになります。

まずは、python 公式サイト からダウンロードして、Windows に、python をインストールします。

次に、以下のコードを書いて実行してみます。

import requests
import csv
import time

with open('url.csv', 'r') as f:

    reader = csv.reader(f)
    header = next(reader)

    for row in reader:
        url = row[0]
        r = requests.get(url)
        print(str(r.status_code) + ' : ' + url)
        time.sleep(1.0) # 1秒待つ

はじめて実行すると、エラーになりました。

PS C:\****> python chkurl.py
Traceback (most recent call last):
  File "chkurl.py", line 1, in <module>
    import requests
ModuleNotFoundError: No module named 'requestss'

どうやら、動作に必要な request module が足りないようなので、インストールします。

python -m pip install request

これで、request モジュールが利用できるようになります。

この処理も、スクリプトの記述をミスると、対象のサーバーに大量のアクセスを発生させてしまうので、ご注意ください。

今回は、1秒ごとにアクセスするように作ってあります。

  • このエントリーをはてなブックマークに追加
  • このエントリーをはてなブックマークに追加

この記事を書いた人

  • よっしー

    よっしー

    ディレクター (東京支社)

    ディレクター

    (東京支社)

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

    田畑では愛車トラクターを乗りこなし、米も作る農家が本業というIT系ファーマー、いや、ファーマー系エンジニア? こだわりのあるモノ作りが得意。野菜とWEBの旬な情報はお任せ! 新しい技術やサービスは、まず自ら使ってみる事をモットーにしているプロジェクトマネージャー。WEB制作だけではなく、ネットワーク/サーバー、システム開発まで幅広く網羅。

この人が最近書いたものを見る

一覧

これを読んだ人にオススメ

ひっとびととは?

WEB制作・プロデュース会社『フューチャーヒット』の人々が趣味などをゆるく紹介するサイトです。
フューチャーヒットの「人々」が自由に、でも真剣に取り組んでいく様子をこの「ひっとびと」を通してお届けしていければと思います。

詳細はこちらから