wget은 소규모 사이트의 스냅샷을 빠르게 만들 수 있는 훌륭한 도구입니다. 내가 아는 한(정말로 에서 찾을 수 없기를 바랍니다 ) wget은 다음 wget --help
과 같은 잘 알려진 HTML URL 속성만 존중할 수 있습니다 . 그러나 때로는 특정 사이트에서 비표준 속성을 사용하여 wget의 URL과 다른 실제 URL을 나타낼 수 있습니다. 예를 들어, 웹사이트에 크기가 조정된 이미지가 포함된 "정적" 갤러리가 있는 경우 특정 이미지 페이지에는 다음 콘텐츠가 포함될 수 있습니다.<a href=...
<img src=...
<div zoomed_img="/gallery/image.jpg">
<img src="/gallery/image_small.jpg"/>
</div>
zoomed_img
따라서 wget은 /gallery/image.jpg
. 내 wget 명령은 다음과 같습니다
wget --recursive \
--domains domain \
--no-parent \
--page-requisites \
--no-clobber \
--html-extension \
--convert-links \
http://domain/gallery
wget이 사용자 정의 URL HTML 속성을 존중하도록 할 수 있습니까?
답변1
답변2
~처럼얻다팔로우가 허용되지 않음데이터 소스내 솔루션은 프록시를 사용하여 모든 항목을 대체하는 것이었습니다."src"에 의한 "데이터-src"비행 중.
사용https://mitmproxy.org/예를 들어 다음 스크립트를 사용합니다.
"""
Fix the lazy loader SRC.
"""
from mitmproxy import http
def response(flow: http.HTTPFlow) -> None:
if flow.response and flow.response.content:
flow.response.content = flow.response.content.replace(
b"data-src", b"src"
)
에이전트를 실행합니다.
mitmdump -s src.py --ssl-insecure
프록시를 사용하도록 wget에 지시합니다.
wget -e use_proxy=yes -e http_proxy=localhost:8080 -e https_proxy=localhost:8080 --mirror --convert-links --adjust-extension --page-requisites --no-parent --progress=dot --recursive --level=6 --reject-regex "(.*)\?(.*)" --no-check-certificate https://website.com/
결과적으로 wget은 HTML을 읽기 전에 HTML을 동적으로 편집하는 로컬 프록시를 통해 전체 웹사이트를 미러링합니다. 이런 방식으로 이미지 URL이 검색됩니다.