로컬 HTML 파일에서 특정 URL 구문 분석

로컬 HTML 파일에서 특정 URL 구문 분석

저장된 URL에서 특정 URL을 구문 분석하고 싶습니다.HTML-간단한 bash-script/명령을 사용하여 나중에 다운로드할 수 있도록 파일을 만듭니다 wget.
내가 지금까지 가지고 있는 것은 다음과 같습니다.

awk 'BEGIN{ RS="<a *href *= *\""} NR>2 {sub(/".*/,"");print; }' index.html >> url-list.txt

내 HTML 파일 내부의 모든 링크를 깔끔한 txt 문서로 작성합니다.

하지만 나에게 필요한 것은 특정 링크뿐이다.

  • 특정 도메인에서
  • 예를 들어 모든 .ogg 파일

결국 모든 것은 다음과 같습니다.

http://www.foo.com/(randomfolder)/(randombasename).ogg

또는

http://subdomain.foo.com/(randomfolder)/(anotherrandomsubfolder)/(randombasename).ogg

미리 감사드립니다!

답변1

"Bash에서" 수행해야 한다고 말했지만 "순수한 Bash 구문 사용"이 아니라 "스크립트에서"를 의미하는 것 같습니다(차이가 있습니다). 나는 당신이 "스크립트 내"라는 의미를 원한다고 가정합니다.


http://www.example.com/문서의 별도 줄에 모든 링크를 저장한 경우 예를 들어 도메인의 모든 링크를 선택할 수 있습니다.

grep "^http://www\.example\.com/" filewithlinks.txt

.ogg또는 다음 으로 끝나는 모든 링크

grep "\.ogg$" filewithlinks.txt

(마침표 앞의 백슬래시는 ."모든 문자"를 의미하는 " " 기호를 이스케이프하기 위한 것입니다. \.대신 " "는 문자 그대로의 마침표를 의미합니다. 이스케이프하지 않으면 예를 들어 "logg"로 끝나는 링크도 일치하게 됩니다.)

명령 에서 직접 줄 일치를 수행할 수도 있지만 awk 때때로 변경하는 것이 더 복잡할 것이라고 생각합니다. 가장 쉬운 방법은 전체 링크 목록을 파일에 저장한 다음 grep위와 같은 예를 사용하여 파일을 검색하는 것입니다. 그러면 일치하는 패턴을 변경하려는 경우 문서를 다시 다운로드하고 구문 분석할 필요도 없습니다.

관련 정보