xmllint

html ファイルのスクレイピング、Dockerへインストール

HTML

HTML 内の<img srs="xxx">から画像をダウンロード

  • $target_content: HTML コンテンツ
  • $img_dir: アウトプットパス
 echo  "$target_content" | \
 xmllint --html --xpath '//img/@src' - | \
 xargs -n 1 | \
 cut -d= -f2 | \
 sed 's/^\/\//https:\/\//' | \
 xargs -n 1 curl -L#O --output-dir "$img_dir"

HTML 内に<img srs="xxx">がないと Emptyのエラーが出るのでifで対応

key="<img src="
if [[ $target_content =~ $key ]]; then
 echo "img src in"
 echo  "$target_content" | \
 xmllint --html --xpath '//img/@src' - | \
 xargs -n 1 | \
 cut -d= -f2 | \
 sed 's/^\/\//https:\/\//' | \
 xargs -n 1 curl -L#O --output-dir "$img_dir"
else
   	echo "img src none"
fi

Docker へ Install

Alpine 系

RUN apk add --upgrade libxml2 libxml2-utils

おっさんWEBエンジニア奮闘記©2007 WEBDIMENSION