[파이선&쉘스크립트] 특정 게시판 제목에 '단어' 노출시 이메일을 보내주는 스크립트

[b:36ii7vxd]hansalim.py[/b:36ii7vxd]

[code:36ii7vxd]#!/usr/bin/python

import urllib, re, sys

def readFile(f):
contentFile = open(‘./%s’ %f)
content = contentFile.read()
contentFile.close()
return content

def readURL(url):
f = urllib.urlopen(‘%s’ %url)
content = f.read()
f.close()
return content

감시하고자 하는 게시판의 주소

content = readURL(‘http://shop.hansalim.or.kr/im/im/cm/IMCM0202L.do?clk=2&newsGbn=2’)
saved_list = readFile(‘hansalim_list.txt’)

이 부분이 전체 소스 중에서 게시판 제목만을 추려내는 정규식입니다. 이는 게시판의 특성에 따라 다르게 적용될 것입니다.

check_supply = re.findall(r’'2', '(\d+)')&quot;>(.+?)</a>', content)

for c in check_supply:
# 감시하고자 하는 단어 -> 저의 경우 ‘양배추’
if c[1].find(‘양배추’) != -1:
if saved_list.find(‘%s’ %c[0]) == -1:
print ‘%s %s’ %(c[0], c[1])

[/code:36ii7vxd]

[b:36ii7vxd]hansalim.sh[/b:36ii7vxd]

[code:36ii7vxd]
#!/bin/bash

email_addr1=‘받아보고자하는@메일주소.com’

sendMail() {
# 이메일 받아봤을 때 감시하는 게시판으로 바로 넘어가기 위한 주소입니다.
# mutt가 설치 및 작동이 되어야 가능합니다.
echo "http://shop.hansalim.or.kr/im/im/cm/IMCM0202L.do?clk=2&newsGbn=2" | mutt -x -s "한살림 : $content" "$1"

}
cd /usr/local/hansalim # crontab작동시 원활한 작동을 위해 스크립트 폴더 위치로 이동
content=python &#46;/hansalim&#46;py

if [ -n "$content" ]; then
IFS="
"
for c in $content; do
# 게시판에 처음 노출시 게시물 번호를 hansalim_list에 저장하여 중복 발송을 방지
echo $c | awk ‘{print $1}’ >> hansalim_list.txt
done
sendMail "$email_addr"
fi

exit 0
exit
[/code:36ii7vxd]

엄마가 한살림 매장에서 '양배추’가 언제 재출하 되냐고 매장 직원들과 매번 씨름 하시길래 파이썬과 쉘을 섞어 하나 만들었습니다.
파이썬만으로 만들어도 되겠지만 mutt를 사용해야 하기에 큰 틀을 쉘로 잡았습니다.
게시판 특성마다 노출되는 소스 방식이 다 다르니 모두 적용될리는 만무합니다만 혹시 필요하신 분이 계시면 참고하시면 좋으실거 같아 올려봅니다.

mutt 설치시는(12.04인 저의 기준으로)
[url:36ii7vxd]http://jweh.tistory.com/81[/url:36ii7vxd]
이걸 참고하시면 좋으실거 같습니다. Sendmail 설치법이지만 이대로 따라하신 뒤 mutt 설치하시면 잘 작동합니다.

오… 양배추 모니터링이라 재밌는 걸 만들었군요 :D