명령 줄에서 참조 된 이미지가있는 HTML 파일을 webarchive로 변환하는 방법은 무엇입니까?


2

MacOS에서 HTML 파일을 명령 줄에서 / 프로그램 방식으로 참조 된 이미지로 변환하려고합니다. 웹 아카이브 .

주어진 샘플 파일 sample.html 포함 :

<html><body>
<h1>File with resource</h1>
<p>This file shows text and references an image.</p>
<img src="sample.jpg" />
</body></html>

및 이미지 sample.jpg 동일한 디렉토리에서 모든 브라우저에서 html 파일을 볼 수 있으며 이미지로 렌더링됩니다. webarchive로 변환하려면 시도 :

textutil -convert webarchive sample.html

그러나 결과 sample.webarchive Safari에서 열면 이미지를 렌더링하지 않습니다. ~을 포함하다 그것 (코멘트를 보아라).

결과가 포함되도록 명령 줄에서 올바르게 변환하려면 어떻게해야합니까? 이미지를 렌더링합니까? 결국 웹 아카이브가 필요한 것입니다!


열면 작동하나요? sample.html Safari에서 거기에서 webarchive를 만든 다음 두 파일을 모두 이동하고 Safari에서 보관 파일을 엽니 다.
nohillside

@patrix 좋은 질문입니다! 나는 그것을 시도했고 - 예상대로 - 사파리가 할 수있다 : 사파리가 아카이브를 저장할 때, 그것은 열리고 렌더링 될 때 이미지가 나타나는 방식으로 저장된다. 이상하게도 Safari 아카이브와 textutil 아카이브의 파일 크기가 매우 유사하므로 textutil 아카이브 ~하다 이미지를 포함하고 있습니다. 단지 렌더링을 위해 제대로 참조되지 않습니다 ...
halloleo

글쎄, 그것은 참으로 (당신은 plutil -p WEBARCHIVE ). 나는 차이점을 들여다 보지 않았다.
nohillside

흥미 진진한 @patrix! Thx에 대한 포인터 plutil (나는 웹 아카이브가 plist 형식을 사용했지만 분석을 고려하지 않았습니다. plutil더 자세히 조사 할 것입니다.
halloleo

답변:


1

도구 사용 webarchiver (통해 설치할 수 있습니다 brew install webarchiver ) :

webarchiver -url sample.html -output sample.webarchive

제작 된 웹 아카이브에는 이미지가 포함되어 있으며 Safari에는 웹 아카이브가 표시 될 때 이미지가 표시됩니다.


-2

나는 커맨드 라인이 어떤 이미지가 포함되어 있는지 알지 못한다고 생각한다.

이미지 + 텍스트가있는 간단한 웹 페이지를 테스트하고 Safari로 열었습니다.

파일 - & gt; 다른 이름으로 저장 ... 'webarchive'를 사용하면 생성 된 웹 아카이브에서 파일 끝에 이미지가 추가 된 것을 볼 수 있습니다.

Safari가 이미지를 구현하기 위해 내부 Swift / Objective-C 함수를 사용하고 있다는 것은 아주 분명합니다.

html을 가져와 이미지를 참조로 사용하도록 선택한 경우 이미지를 무시하고 텍스트 만 출력합니다 (textutil을 통해).

웹 페이지를 다운로드 할 때 webarchives에 의존하지 않고 대신 wget이나 curl 또는 scrap / beautifulSoup와 같은 스크래핑을 사용하여 다운로드합니다.

1 파일을 갖는 것이 편리하다는 것을 알고 있지만, 이미지를 저장하는 가장 좋은 방법은 아니며 나중에 추출하기가 어렵습니다.


질문을 주셔서 감사합니다. 그러나 나의 이해에서 당신의 "대답"은 주로 내 문제를 진술한다 : "명령 줄"즉 textutil 적절한 웹 아카이브를 만들 수 없습니다. 적어도 내가 어떻게 부르지는 않습니다. 나는 작업 도구 / 절차를 밟고있다. 명령 행용 정확하게하기 위해서.
halloleo
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.