プロが教える店舗&オフィスのセキュリティ対策術

教えてください!

サイトのHTML内の
<div class="CaseW1">テスト</div>

このテストを抽出し、test.txtに保存させたいのと、
ClassのCaseW1の「W1」だけ抽出させたいです。
※Caseは共通(CaseW2やCaseW3といった感じ)

どのようにするのでしょうか?

A 回答 (4件)

正規表現で抜き出せないことはないですが


DOMライブラリを使うほうが効率がいいかもしれません
    • good
    • 0
この回答へのお礼

先日に続きご回答ありがとうございます;;

DOMライブラリとはなんですか?
use LWP::UserAgent;
use HTML::TreeBuilder;
こういうのを使うってこと・・・?

お礼日時:2017/09/21 10:47

Perlについてはあまり詳しくないので手取り足取りでお教えすることはできませんが


このへんですかね

https://metacpan.org/pod/Mojo::DOM
https://metacpan.org/pod/HTML::DOM
    • good
    • 0
この回答へのお礼

ありがとうございます

参考にさせていただきます。
ただモジュールがインストールされていないか、使用できませんでした。

お礼日時:2017/09/21 14:34

perl らしく簡単にやるなら


curl -s 対象URL | perl -ne 'print "$1 : $2\n" if m#<div class="Case(\w+)">([^<>]+?)</div>#' > test.txt
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

これは、デスクトップ上からは使用できませんか?

C:\Users\owner>C:\Users\owner\Desktop\ewal.pl
syntax error at C:\Users\owner\Desktop\ewal.pl line 3, near "curl -s "
Unknown regexp modifier "/r" at C:\Users\owner\Desktop\ewal.pl line 3, at end of
line
Illegal octal digit '8' at C:\Users\owner\Desktop\ewal.pl line 3, at end of line

Execution of C:\Users\owner\Desktop\ewal.pl aborted due to compilation errors.


C:\ Users \ owner> C:\ Users \ owner \ Desktop \ ewal.pl
C:\ Users \ owner \ Desktop \ ewal.pl 3行目の「curl -s」の構文エラーです。
C:\ Users \ owner \ Desktop \ ewal.pl 3行目の不明なregexp修飾子 "/ r"
ライン
C:\ Users \ owner \ Desktop \ ewal.pl 3行目、行末に不正な8進数の「8」があります

コンパイルエラーのためにC:\ Users \ owner \ Desktop \ ewal.plの実行が中止されました。

のようなエラーとなりました
※ewal.pl これは適当な名前です

お礼日時:2017/09/21 14:36

No.3 は UNIX/Linux でワンライナー実行する場合でしたが、


これは Windows のコマンドラインでは少々面倒なので、
今度はスクリプトファイルで実行する場合の例です。

use LWP::Simple;
my $content = get("サイトURL");
open(F, "> test.txt");
while ($content =~ m#<div class="Case(\w+)">([^<>]+?)</div>#g) {
print F "$1 : $2\n";
}
close(F);

参考
http://perldoc.jp/docs/modules/libwww-perl-5.813 …
    • good
    • 0
この回答へのお礼

ありがとうございます!!
解決することができました!!

お礼日時:2017/09/22 14:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!