헤드리스 크롬 브라우저 명령 구문 문제

헤드리스 크롬 브라우저 명령 구문 문제

헤드리스 크롬 브라우저에서 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.

관련 정보