신영복님의 감옥으로부터의 사색을 킨들에서 읽어보자.(1)
에서 iMacros+파이썬+칼리버 를 이용해서 신영복 선생님의 감옥으로부터의 사색을 킨들에서 읽을 수 있는 방법을 알아봤다.
그런데
1. 번호를 1칸씩 밀려쓰는 바람에 글 제목과 글 내용이 맞지않고
2. xml에서 description 태그를 생략했더니 미리보기 글이 없어 좀 허전하고
3. 피드를 별 의미 없이 잘랐더니 원하는 글을 찾기가 불편하고
4. 또, 목차가 맨 뒤에 나와 불편했다.
이번 글에서는 1-3번을 해결하는 방법을 알아보려고 한다.
먼저 iMacros.
VERSION BUILD=8300326 RECORDER=FX
TAB T=1
SET !TIMEOUT 8
SET !ERRORIGNORE YES
SET !VAR1 1868
ADD !VAR1 {{!loop}}
'Play loop 248 times.
URL GOTO=http://www.shinyoungbok.pe.kr/{{!VAR1}}
TAG POS=1 TYPE=h1 ATTR=* EXTRACT=TXT '제목을 뽑아내는 부분.
TAG POS=1 TYPE=div ATTR=class:"shin" EXTRACT=TXT '미리보기 글을 뽑아내는 부분
SAVEAS TYPE=EXTRACT FOLDER=* FILE=gamok.csv
이 매크로를 실행하면 gamok.csv에
"나의 숨결로 나를 데우며","겨울의 싸늘한 냉기 속에서 나는 나의 숨결로 나를 데우며 봄을 기다린다. "
"사랑은 경작되는 것","사랑이란 생활의 결과로서 경작되는 것이지 결코 갑자기 획득되는 것이 아니다. 한 번도 보지 못한 사람과 결혼하는 것이, 한 번도 보지 않은 부모를 만나는 것과 같이 조금도 이상하지 않는 까닭도 바로 사랑은 생활을 통하여 익어가는 것이기 때문이다. "
이런 식으로 한 줄마다 글 제목과 미리보기 내용이 들어간다.
다음 파이썬.
지난 번 코드와 달라진 점은
1.100개씩 글을 쪼개던 것을 실제 목차에 맞게 나눠준 것과
2. item = re.findall(r'"(.*?)"',line) 코드를 써서 csv화일에 들어있는 정보를 list로 바꿔서 이용하는 것이다.
# coding=utf8
import re
import sys
import codecs
#import urllib, urllib2, cookielib
def main():
title_file = open('gamok.csv', 'r')
output0 = open('0_gamok_intro.xml', 'w')
output1 = open('1_gamok_namhansanseong.xml', 'w')
output2 = open('2_gamok_anyang.xml', 'w')
output3 = open('3_gamok_daejeon.xml', 'w')
output4 = open('4_gamok_jeonju.xml', 'w')
number = 1868
for line in title_file:
item = re.findall(r'"(.*?)"',line)
number= number +1
if number < 1872:
output0.write("<item>")
output0.write('\n')
output0.write("<title>"+item[0]+"</title>")
output0.write('\n')
output0.write("<link>"+"http://www.shinyoungbok.pe.kr/letter/"+str(number)+"</link>")
output0.write("<description>"+"http://www.shinyoungbok.pe.kr/letter/"+"</description>")
output0.write("<author>신영복</author><pubDate>2013-08-04 16:52:14</pubDate></item>")
elif number < 1882:
output1.write("<item>")
output1.write('\n')
output1.write("<title>"+item[0]+"</title>")
output1.write('\n')
output1.write("<link>"+"http://www.shinyoungbok.pe.kr/letter/"+str(number)+"</link>")
output1.write("<description>"+item[1]+"</description>")
output1.write("<author>신영복</author><pubDate>2013-08-04 16:52:14</pubDate></item>")
elif number < 1883:
output2.write("<item>")
output2.write('\n')
output2.write("<title>"+item[0]+"</title>")
output2.write('\n')
output2.write("<link>"+"http://www.shinyoungbok.pe.kr/letter/"+str(number)+"</link>")
output2.write("<description>"+item[1]+"</description>")
output2.write("<author>신영복</author><pubDate>2013-08-04 16:52:14</pubDate></item>")
elif number < 2080:
output3.write("<item>")
output3.write('\n')
output3.write("<title>"+item[0]+"</title>")
output3.write('\n')
output3.write("<link>"+"http://www.shinyoungbok.pe.kr/letter/"+str(number)+"</link>")
output3.write("<description>"+item[1]+"</description>")
output3.write("<author>신영복</author><pubDate>2013-08-04 16:52:14</pubDate></item>")
else:
output4.write("<item>")
output4.write('\n')
output4.write("<title>"+item[0]+"</title>")
output4.write('\n')
output4.write("<link>"+"http://www.shinyoungbok.pe.kr/letter/"+str(number)+"</link>")
output4.write("<description>"+item[1]+"</description>")
output4.write("<author>신영복</author><pubDate>2013-08-04 16:52:14</pubDate></item>")
title_file.close()
output0.close()
output1.close()
output2.close()
output3.close()
output4.close()
# This is the standard boilerplate that calls the main() function.
if __name__ == '__main__':
main()
No comments:
Post a Comment