>> Delete No. 548 article
No. 허영만의 "사랑해" 긁어 오기 스크립트...

등록 2000-06-08 06:01:00     조회 4
이름 적수    

		허영만(그림), 김세영(글)의 "사랑해"라는 만화를 아시는지요? 스포츠 조선
에 연재가 되고 있는데 잔잔한 이야기로 보는 이를 즐겁게 해주지요. 이 만
화가 조선 일보 사이트를 통해 서빙되는데 파일 이름의 일관성 같은 것이 없
어서 도저히 wget 같은 웹을 긁는 툴로 긁을 수가 없더군요.
 그래서 lynx와 wget을 이용하여 "사랑해" 만화만을 다운 받을 수 있는 작은
스크립트를 짜 보았습니다. 오랜만에 쉘 스크립트를 짜본터라 영 엉망이지
만 분명 제대로 동작은 할 것입니다. :)
 사랑해라는 만화를 좋아하신다면 한번 사용해 보십시오. 다 긁으면 115M 정
도 됩니다. 껄껄...
 하루에 한번 크론탭으로 돌리면 갱신된 이미지를 다운 받을 수 있을 것입니
다. 키키키키 (저야 이미 돌리고 있지요.)
 신택스 하이라이팅 버젼 -->
http://linux.sarang.net/tmp/get.html  ----------- 여기를 잘라 주세요 -----------
#!/bin/sh
 DATA="list.txt"
 # 사랑해 목록 페이지
URL0="http://www.chosun.com/bin/prelist?dir=n&code=bd_&id="
# 사랑해 이미지 페이지
URL1="http://www.chosun.com/photo/news/"
 g_list ()
{
  # 페이지 목록을 저장하는 파일을 검사
  if [ ! -f ${DATA} ]
  then
    # 사랑해 만화 목록 마지막 페이지
    echo 'LIST:80019794s838' >> ${DATA}
    # 사랑해 만화 목록 첫 페이지
    echo 'LIST:000000000000' >> ${DATA}
  fi
   while true
  do
    # 페이지 목록의 마지막 줄을 가져와 다음 페이지 목록을 가져옴
    URL="${URL0}$(grep "LIST:"${DATA} |tail -1 |sed 's/LIST://g')"
    LIST=$(lynx --dump "${URL}" |grep prelist |grep -v IMGMAP
         |grep -v 000000000000 |sed 's/^.*=//')
    grep "${LIST}" ${DATA} > /dev/null 2>&1
    if [ $? -eq 1 ]
    then
      echo "LIST:${LIST}">> ${DATA}
      printf "."
    else
      break
    fi
  done
  echo "[완료]"
   # 빈줄을 제거하고 정렬함
  sort -ru ${DATA} |grep -v ^$ > ${DATA}.$$
  mv -f ${DATA}.$$ ${DATA};
}
 g_page ()
{
  for LIST in $(grep "LIST:"${DATA} |sed 's/LIST://g')
  do
    URL="${URL0}${LIST}"
    PAGE=$(lynx --dump "${URL}" |grep news
         |sed -e 's/^.*///' -e 's/.html//g' -e 's/^/PAGE:/g')
    echo "${PAGE}" >> ${DATA}
    printf "."
  done
  echo "[완료]"
   sort -ru ${DATA} |grep -v ^$ > ${DATA}.$$
  mv -f ${DATA}.$$ ${DATA};
}
 g_imag ()
{
  # 이미지 저장 디렉토리 만듬
  if [ ! -d image ]
  then
    mkdir image
  fi
   echo "   +"
  for PAGE in $(grep "PAGE:"${DATA} |sed 's/PAGE://g')
  do
    # 디렉토리명을 찾아냄 (년월까지)
    DATE0=$(echo $PAGE | sed 's/(^[0-9]{6}).*/1/g')
    # 년 월 일 포맷을 만듬
    DATE1=$(echo $PAGE |
sed 's/(^[0-9]{4})([0-9]{2})([0-9]{2}).*/1년 2월 3일/g')
     if [ ! -f "image/${PAGE}.gif" ] && [ ! -f "image/${PAGE}.jpg" ]
    then
      # gif 또는 jpg가 있으므로 다운로드 함
      IMG0="${URL1}${DATE0}/${PAGE}.gif"
      IMG1="${URL1}${DATE0}/${PAGE}.jpg"
       echo "   |--> ${DATE1} 이미지 다운"
      wget -P image "${IMG0}" > /dev/null 2>&1 ||
      wget -P image "${IMG1}" > /dev/null 2>&1
    fi
  done;
  echo "   |"
  echo "   +--> [완료]"
}
 echo -n "1. 페이지 목록 가져옴 "
g_list
echo -n "2. 이미지 목록 가져옴 "
g_page
echo "3. 이미지 파일 가져옴"
g_imag
 --
아.지.사.바
[관리자] 패스워드를 입력 하십시오. 답장이 존재하면 함께 삭제됩니다.[ 목록 | 이전 ]
패스워드:    

Copyleft 1999-2026 by JSBoard Open Project
Theme Designed by IDOO All right reserved