헤드리스 크롬 브라우저에서 HTML 파일을 올바르게 생성하지 못하는 문제가 있습니다. 생성된 유일한 콘텐츠/파일은{}.html문서
내 domains.txt에는 다음이 포함됩니다.
https://ibm.com/
https://www.linux.org/whats-new/
추신: 저는 Ubuntu 18.04 64비트 Linux를 사용하고 있습니다.
내가 사용하는 명령은 다음과 같습니다.
cat domains.txt | xargs -I {} -P 4 sh -c timeout 25s chromium-browser --headless --no-sandbox --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' --dump-dom https://{} 2> /dev/null > {}.html
이것은에서 가져온 것입니다이 링크
답변1
암호:
cat domains.txt | xargs -I {} -P 4 sh -c timeout 25s chromium-browser --headless --no-sandbox --user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36' --dump-dom https://{} 2> /dev/null > {}.html
매개변수 주위에 따옴표가 없습니다 sh -c
. 적절한 인용을 사용하면 sh -c
원본 스크립트 에 코드를 삽입할 수도 있는데 xargs
, 이는 보안 허점입니다.
파이프가 더 잘 작성되었습니다.
xargs -I {} -P 4 sh -c '
timeout 25s chromium-browser \
--headless --no-sandbox \
--user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36" \
--dump-dom \
"https://$1" 2>/dev/null >"$1.html"' sh {} <domains.txt
https://ibm.com/.html
...그러나 파일에 이러한 문자열이 있는 경우 domains.txt
(예: 이상한 이름의 하위 디렉터리에 있는 파일) 여전히 "stuff"라는 파일이 기록되고 https://https://ibm.com/
.
내 생각에는 전체 URL이 아닌 실제 도메인만 파일에 유지하는 것이 목적인 것 같습니다 domains.txt
.
ibm.com
www.linux.org
개인적으로 나는 더 간단한 솔루션을 사용하고 싶습니다 curl
.