Math equations

Tuesday, August 6, 2013

신영복님의 감옥으로부터의 사색을 킨들에서 읽어보자.(2)

신영복님의 감옥으로부터의 사색을 킨들에서 읽어보자.(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