wget 명령 후에 얻은 모든 html 파일을 일반 텍스트 파일로 변환하는 방법은 무엇입니까?
사용을 고려하고 있어요살쾡이HTML 파일을 ".txt" 파일로 변환하고 태그를 제거합니다.
전체 웹사이트를 저장하는 이 코드 조각이 있는데 로컬 폴더 "test"의 "foobar" 웹사이트에 있는 html 파일에서 변환된 텍스트 파일만 유지하도록 코드를 어떻게 변경합니까?
wget -P /test/ --recursive http://foobar.html
나는 무엇을 해야할지 모르겠다파이프로 연결하다살쾡이그리고 지정하는 방법특정 디렉터리의 모든 파일에 명령 적용.
답변1
wget
아마도 올바른 도구가 아닐 것입니다. Lynx는 파일을 다운로드하고 동시에 일반 텍스트로 변환할 수 있지만 출력을 파일로 리디렉션하여 이를 수행합니다. 옵션이 없기 때문에 -output
출력 이름을 지정해야 하기 때문에 스크립트에서 사용하는 것이 다소 어색합니다.
그러나 .html
디렉토리가 파일로 가득 차 있다고 가정하면 find
디렉토리를 반복하고 예를 들어 다음을 사용하여 파일을 변환할 수 있습니다.
#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
lynx -dump "$path" >"${path%%.htm*}.txt"
done
".txt" 파일을 동일한 트리에 배치하거나
#!/bin/sh
find . -type f -name '*.htm*' | while IFS= read path
do
target=${path/foobar/test}
lynx -dump "$path" >"${target%%.htm*}.txt"
done
"test" 폴더에 있습니다("foobar"를 "test"로 매핑). "/" 대체는 bash에만 해당되며 POSIX에는 없습니다(그러나 sed
POSIX를 사용하기로 선택한 경우에는 잘 작동합니다).
추가 자료:
- 2.6.2 매개변수 확장(POSIX)
답변2
일정에 따라 HTML 파일로 다운로드한 다음 명령줄 유틸리티를 사용할 수 있습니다 html2text
.
https://stackoverflow.com/questions/30015809/html2text-convert-special-characters