teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

テキスト修正

2015/05/04 08:52

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -57,8 +57,8 @@
57
57
  できそうな気がしますが、機能が充実しているHTMLパーサーのライブラリがある
58
58
  言語を選ぶのがよいと思います。
59
59
   とはいえ、HTMLから、CSSセレクタなりXPathで要素を取ってくるのは、いわ
60
- ゆるスクレイピングと呼ばれるよく知られた技術の範疇なので、どの言語でも
60
+ ゆるスクレイピングと呼ばれるよく知られた技術の範疇なので、どの言語でも便利な
61
- 便利なものはあると思います。(JavaならJsoup、RubyならNokogiri、など)
61
+ ものはあると思います。(JavaならJsoup、RubyならNokogiri、など)
62
62
 
63
63
  以上が、私からの回答としての
64
64
  「こんなプログラムを書けばいいのでは?」

2

テキスト修正

2015/05/04 08:52

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -5,9 +5,11 @@
5
5
  レートですが)とCSSファイルがあり、本当に活きてるスタイルがどれなのか、すぐには分か
6
6
  らない状況になっていますので、おっしゃるような
7
7
 
8
- > (1) htmlから使用しているCSS(最終的に効いているスタイル)だけ抽出してまとめてくれるようなツール
8
+ > (1) htmlから使用しているCSS(最終的に効いているスタイル)だけ抽出してまとめて
9
+ > くれるようなツール
9
10
  >
10
- > (2) CSS内に記述されたスタイル側から、そのスタイルが適用されている箇所がわかる方法やツール
11
+ > (2) CSS内に記述されたスタイル側から、そのスタイルが適用されている箇所がわかる
12
+ > 方法やツール
11
13
 
12
14
  があればいいなと思いまして、軽くGoogleで調べてみましたが、案外無いものですね。
13
15
  (あっても良さそうなものだけど、と正直思いましたが)
@@ -18,8 +20,8 @@
18
20
  と思うので、以下に、実際作るならば、どんなプログラムになるのかのアウトラインを記し
19
21
  ました。
20
22
 
21
- まず、最も単純な場合として、ある1つのHTMLファイルに1つのCSSファイルが読み込まれている
23
+ まず、最も単純な場合として、ある1つのHTMLファイルに1つのCSSファイルが
22
- ケースを想定して、以下のプログラム1、2を作成します。
24
+ 読み込まれているケースを想定して、以下のプログラム1、2を作成します。
23
25
 
24
26
  - プログラム1
25
27
 
@@ -28,9 +30,11 @@
28
30
  - プログラム2
29
31
 
30
32
  (1)検証対象のHTMLをパースして、(プログラムの中で)要素のツリーを作る。
31
- (2)プログラム1が作ったセレクタのリストを読んで、上から順にそのセレクタに相当する要素数を数える。
33
+ (2)プログラム1が作ったセレクタのリストを読んで、上から順にそのセレクタに相当する
32
- (※該当要素を抽出するために、セレクタをXPathに変換する必要があるかもしれないので、適宜変換。)
34
+ 要素数を数える。(※該当要素を抽出するために、セレクタをXPathに変換する必要がある
35
+ かもしれないので、その際は適宜変換)
33
36
  (3)その数えた結果を、ファイル(CSVとか)に、セレクタと該当数を1行にカンマ区切りで出力
37
+  →注目すべきは、該当数が0のセレクタですね。
34
38
 
35
39
  といった処理を行うプログラムを書くことになるかと思います。
36
40
 
@@ -43,17 +47,18 @@
43
47
  あとは、
44
48
  - 1つのCSSが複数のCSSをimport している場合
45
49
 
46
- - 静的なHTMLではなく、プログラムで動的にHTMLを作っている場合(例:SmartyJSPのようもの
50
+ - 静的なHTMLではなく、プログラムで動的にHTMLを作っている場合(例:SmartyJSPな
47
51
 
48
- に対応しなければなりませんが、れらは 1HTML-1CSSのチェックの応用なので、
52
+ に対応しなければなりませんが、れらは 1HTML-1CSSのチェックの応用なので、
49
53
  (それなりに時間はかかると思いますが、)すごく難しいアルゴリズムを考えないと
50
54
  クリアできない種類の難問ではないと思います。
51
55
 
52
56
  これを実装する言語としては、PHPでもJavaでもRubyでも、または他の言語でも
53
57
  できそうな気がしますが、機能が充実しているHTMLパーサーのライブラリがある
58
+ 言語を選ぶのがよいと思います。
54
- 言語を選ぶのがよいますが HTMLから、CSSセレクタなりXPathで要素を
59
+  え、HTMLから、CSSセレクタなりXPathで要素を取ってくるのは、いわ
55
- 取ってくるのは、いわゆるスクレイピングと呼ばれるよく知られた技術の範疇なので、
60
+ ゆるスクレイピングと呼ばれるよく知られた技術の範疇なので、どの言語でも
56
- どの言語でも便利なものはあると思います。(JavaならJsoup、RubyならNokogiri、など)
61
+ 便利なものはあると思います。(JavaならJsoup、RubyならNokogiri、など)
57
62
 
58
63
  以上が、私からの回答としての
59
64
  「こんなプログラムを書けばいいのでは?」

1

テキスト修正

2015/05/04 08:50

投稿

jun68ykt
jun68ykt

スコア9058

answer CHANGED
@@ -15,10 +15,9 @@
15
15
  そこで、(私はサーバー側+フロントエンドのJSも書くプログラミング担当なのですが、)
16
16
  もし、WEBデザインやコーディングのチームのほうからgrapeeeさんのような要望があった
17
17
  場合どうするかを考えましたが、多分「ツールを作ってしまいましょう」という提案をする
18
+ と思うので、以下に、実際作るならば、どんなプログラムになるのかのアウトラインを記し
18
- と思い
19
+ した
19
20
 
20
- そこで、以下に実際作るならば、どんなプログラムになるのかのアウトラインを記しました。
21
-
22
21
  まず、最も単純な場合として、ある1つのHTMLファイルに1つのCSSファイルが読み込まれている
23
22
  ケースを想定して、以下のプログラム1、2を作成します。
24
23