ヘッドレス 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
。