HTML없이 wget을 사용하여 페이지의 텍스트를 얻는 방법은 무엇입니까? 만 검색

웹 페이지에서 wget을 시도하면 페이지가 html로 표시됩니다. HTML과 관련이없는 파일의 텍스트 만 검색 할 수 있습니까? (이것은 일부 HTML 페이지에 c 프로그램이 html 태그로 다운로드되고 있기 때문에 필요합니다. 브라우저에서 해당 파일을 열고 텍스트를 수동으로 복사하여 .c 파일을 만들어야합니다.)



답변

wget문서 만 검색합니다. 문서가 HTML로되어 있다면 원하는 것은 문서를 파싱 한 결과입니다.

예를 들어 lynx -dump -nolistlynx가 있다면을 사용할 수 있습니다.

lynx가볍고 간단한 웹 브라우저이며 -dump구문 분석 프로세스의 결과를 출력하는 데 사용되는 기능이 있습니다. -nolist페이지 끝에 하이퍼 링크가있는 경우 나타나는 링크 목록을 피합니다.

@Thor에서 언급했듯이 옵션 elinks도 있으며 링크 목록을 생략해야하기 때문에 이것도 사용할 수 있습니다 . -sigh- 프레임 (MTFBWY)을 사용하여 일부 사이트를 걸을 때 특히 유용 할 수 있습니다.-dump-no-references

또한 페이지가 실제로 HTML 태그가있는 C 코드가 아니라면 결과를 확인하고 C 코드 이상이 없는지 확인해야합니다.


답변

이러한 다른 도구가 설치되어 있지 않고 wget 만 있고 페이지에 일반 텍스트 및 링크 형식 (예 : 소스 코드 또는 파일 목록)이없는 경우 다음과 같이 sed를 사용하여 HTML을 제거 할 수 있습니다.

wget -qO- http://address/of/page/you/want/to/view/ | sed -e 's/<[^>]*>//g'

이것은 wget을 사용하여 페이지 소스를 STDOUT으로 덤프하고 sed를 사용하여 <> 쌍과 그 사이의 모든 것을 제거합니다.

그런 다음 sed 명령의 출력을>를 사용하여 생성하려는 파일로 리디렉션 할 수 있습니다.

wget -qO- http://.../ | sed -e 's/<[^>]*>//g' > downloaded_file.txt

주의 : 파일에 원하지 않는 여분의 공백이있을 수 있습니다 (예 : 줄에 몇 개의 열이 들여 쓰기 됨)

텍스트 편집기를 사용하여 파일을 정리하는 것이 가장 쉽습니다 (또는 C 소스 코드를 다운로드 할 때 소스 포맷터).

파일의 모든 행에 대해 동일한 간단한 작업을 수행해야하는 경우 sed 명령에 명령을 포함시킬 수 있습니다 (여기서는 선행 공백 하나 제거).

wget -qO- http://.../ | sed -e 's/<[^>]*>//g;s/^ //g' > downloaded_stripped_file.txt

답변

다른 도구를 추가하기 만하면됩니다. 내가 선호 w3mlynx같은 콘솔 브라우저. 시스템에서 이미 사용 가능한 것을 확인하십시오.

w3m -dump website.html