Ruby - ウェブスクレイピング - リンク切れをチェック 1ページ

 クラウディア
1. 概要
2. インストール
3. ファイル
4. ソース

1. 概要

 id を記述しているタグが複数あるので。  id の記述を行っているタグを ini ファイルで指定できるようにしようと思ったのです。  本項は「Python や Rubyでの INI ファイルの参照」を参考にさせていただきました。

2. インストール

 inifile というモジュールが必要なようです。  gem でインストールするには

プロンプト略
gem install inifile
 FreeBSD の ports でインストールするには root ユーザで

プロンプト略
cd /usr/ports/textproc/rubygem-inifile
make
make install

3. ファイル

 ファイルを
~/.linkcheck
 としたかったのですが。  先頭の

#!/usr/bin/env ruby
 のためかホームディレクトリの定義がなくなっているようなので、当面、ソースディレクトリと同じディレクトリに配置することにしました。  まず「<a href="#なんとか">」と記述しているリンク先を探すために

[tag]
id=
 と記述して、id の箇所にスペースで区切って、id を定義しているタグを記述することにしました。  事情があって、チェックしたくないリンク先があって

[link]
nocheck=URI
 の形式で記述して、これもスペースで区切って列挙できるようにしました。

4. ソース

 本番のソースは別途掲載しました。  サンプルとして  というソースを書き、ini ファイルとして下記を読みこませて  実行すると下記のような結果が得られます。

> ./ソースファイル名.rb
全有効行
[tag]
id = h4 h5 a div span

[link]
nocheck = https://px.a8.net/ https://go.microsoft.com/fwlink/

[output]
filename = linkchecker-out.html
silent =

分類
key = [tag] value = [id]
key = [link] value = [nocheck]
key = [output] value = [filename]
key = [output] value = [silent]

[:tag] を見る
inifile[:tag]{"id"=>"h4 h5 a div span"}

[:output] を見る
inifile[:output]{"filename"=>"linkchecker-out.html", "silent"=>nil}
 つまり、セクション名をキーとしたハッシュからアイテム名をキーとしたハッシュを作成しているってことでしょうか。  よくできているのは、先頭が # の行は読み飛ばしてくれているところです。
ファイル名が指定されていません ファイル名が指定されていません
 
 
カウンタバックグラウンド