Mojo::DOM
(또는 다른 프레임 워크)으로 웹 페이지를 구문 분석 할 때 상대적이거나 절대적인 리소스 주소를 가져 오는 것이 일반적입니다. 이러한 리소스 주소를 절대 URL로 변환하는 바로 가기 방법이 있습니까?Mojo :: 리소스에 대한 절대 URL을 가져 오는 DOM 단축키?
$ mojo get http://mojolicio.us "link[rel=stylesheet]" attr href
/mojo/prettify/prettify-mojo-light.css
/css/index.css
을 그리고 다음 스크립트 역시 동일하지만, 또한 절대 URL로 리소스를 번역 URI
을 사용
mojo
다음 명령을 mojolicio.us에있는 모든 스타일 시트를 당기는.
use strict;
use warnings;
use Mojo::UserAgent;
use URI;
my $url = 'http://mojolicio.us';
my $ua = Mojo::UserAgent->new;
my $dom = $ua->get($url)->res->dom;
for my $csshref ($dom->find('link[rel=stylesheet]')->attr('href')->each) {
my $cssurl = URI->new($csshref)->abs($url);
print "$cssurl\n";
}
출력은 :
http://mojolicio.us/mojo/prettify/prettify-mojo-light.css
http://mojolicio.us/css/index.css
물론,이 상황에서 상대적 URL은 DOM을로드 URL을 사용하여 절대하여야한다. 그러나 리소스 자체를 코딩하는 것 외에는 절대 URL을 얻는 방법을 모르겠습니다.
이 Mojolicious
입니다. 그러나, 나는 그것이 어떤 식 으로든 Mojo::DOM
과 통합 될지 모르며, 그 자체로 URI
보다 더 많은 코드를 취할 것입니다.
다음과 같은 스크립트 및 명령 줄에서 모두 가능했지만, 구문 분석 모조 사용에 관련된 모든 통찰력을 찾고 있다면 나의 이상적인 솔루션은 다음과 같습니다 잘 모르겠어요
mojo get http://mojolicio.us "link[rel=stylesheet]" attr href to_abs