わかってしまえば単純なことでした。 process 'a[href=~/\.jpe?g$/]', 'urls[]' => '@href'; XPathでも同じようにできます。 process '//a[@href =~ /\.jpe?g$/]', 'urls[]' => '@href'; Web::Scraperにはフィルタの概念があって、取得してからごにょごにょできるので、そっちのほうばかり調べていました。 例えば以下のようなHTMLの場合、そのまま取得すると、前後に改行が入ってしまいます。 <title> タイトルなのだ </title> で、それを取得する時に、前後の改行を削除してやることができます。 process 'title', 'title' => ['TEXT', sub { s/^\s+//o; s/\s+$//o; } ]; こういう機能をフィルタと呼んでいます。 その