ヘッドレス Chrome ブラウザのコマンド構文の問題

ヘッドレス Chrome ブラウザのコマンド構文の問題

ヘッドレス Chrome ブラウザで HTML ファイルを正しく生成できない問題があります。生成された唯一のコンテンツ/ファイル{}.html文書

私のdomains.txtには次のものがあります。

https://ibm.com/ 
https://www.linux.org/whats-new/

PS:私は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

関連情報