웹페이지의 모든 하이퍼링크를 내보내는 방법은 무엇입니까?

웹페이지의 모든 하이퍼링크를 내보내는 방법은 무엇입니까?

웹 페이지(전체 웹 사이트가 아닌 웹 페이지)의 모든 하이퍼링크를 내보내는 솔루션과 내보내려는 링크를 지정하는 방법(예: 다음으로 시작하는 하이퍼링크만)이 필요합니다.https://superuser.com/questions/다른 모든 것을 제외합니다.
텍스트 파일로 내보내는 것이 선호되며 결과는 한 줄에 URL 하나씩 표시되어야 합니다.

https://superuser.com/questions/1  
https://superuser.com/questions/2  
https://superuser.com/questions/3
[...]

답변1

Linux 또는 Unix 시스템(예: FreeBSD 또는 macOS)에서 실행 중인 경우 터미널 세션을 열고 다음 명령을 실행할 수 있습니다.

wget -O - http://example.com/webpage.htm | \
sed 's/href=/\nhref=/g' | \
grep href=\"http://specify.com | \
sed 's/.*href="//g;s/".*//g' > out.txt

일반적인 경우 한 줄에 여러 개의 태그가 있을 수 있으므로 <a href>먼저 잘라내야 합니다(첫 번째는 한 줄에 태그가 하나만 있도록 하기 위해 sed모든 키워드 앞에 개행 문자를 추가합니다 ). 여러 유사한 페이지에서 링크를 추출하려면(예: 이 사이트의 처음 10페이지에 있는 모든 질문) 루프를 사용하세요.href
for

for i in $(seq 1 10); 하다
wget -O - http://superuser.com/questions?page=$i | \
sed 's/href=/\nhref=/g' | \
grep -E 'href="http://superuser.com/questions/[0-9]+' | \
sed 's/.*href="//g;s/".*//g' >> out.txt
완료

http://example.com/webpage.htm실제 페이지 URL과 http://specify.com지정하려는 이전 문자열로 바꿔야 합니다 .
내보낼 URL의 이전 문자열뿐만 아니라 위에 제공된 명령에 egrep또는 를 사용하는 경우 정규식 패턴도 지정할 수 있습니다. Windows를 실행 중인 경우 다음을 활용해 보세요.grep -E
시그윈. 패키지 를 선택하는 것을 잊지 마세요 Wget.grepsed

답변2

Firefox를 사용해도 괜찮다면 애드온을 사용해 보세요.스냅 링크 플러스

  1. 마우스 오른쪽 버튼을 누른 채 링크 주위로 선택 항목을 드래그합니다.

  2. 강조 표시되면 Ctrl을 누른 상태에서 마우스 오른쪽 버튼을 놓습니다.

관련 정보