본문 바로가기

개발자/파이썬 Python

블로그 제목 파일로 저장하기 1

반응형

 

 

 

단어를 배웠으면 빠른 시간 안에 그 단어를 스무 번은 사용한다. 코드를 배웠다면 배운 코드를 곧바로 적용하는 프로그램을 몇 개 만들어 본다. 가장 빨리 배우는 방식은 동사형을 사용해 살아갈 때다. 뭉텅이의 코드가 제대로 돌아가기 위해서는 하나의 세상을 창조해야 한다. 그 세상은 아쉬운 게 없고 더 추가하거나 뺄 것도 없는 세상이다. 그것들은 감추어져 있어 눈에 띄지 않으며, 견고하지만 유연하고, 물처럼 흘러 자유롭다. 그리하여 코드는 개발자와 똑같은 속성을 가진다. 많은 일, 더 많은 시도와 같은 수의 실패가 완벽함을 만든다.

 

작가 앤 라모트(Anne Lamott)는 글쓰기 수업에서 글을 쓸 때 부딪히는 도전적인 상황에 대해 말했다

 

"하나의 작품을 완성하는 데 중요한 것은 정말 엉망진창인 초안을 써보는 거예요. 그리고 이것을 스스로에게 허락할 수 있어야 합니다. 이렇게 초안을 써보면 두 번째 안은 더 좋아질 것이고 세 번째는 더 훌륭한 작품이 나올 확률이 높아질 겁니다. 끝까지 다 써봐야만 자기가 무엇을 썼는지 깨달을 수 있어요.

 

어떤 주제에 대해서 쓰고 싶은지 어떤 이야기를 펼쳐 나갈지는 몰라도 일단 자리에 앉아서 단어들을 짜내는 게 중요합니다. 그래야만 스토리 전개 방향을 비로소 잡을 수 있습니다. 직접 해보지 않는다면 일의 본질이 무엇인지 일을 하면서 어떤 기분이 들지 그 결과가 어떻게 될지는 아무도 모를 겁니다. 최대한 형편없이 시작해 보시길 바랍니다."

 

 

from requests import get
from bs4 import BeautifulSoup

from datetime import datetime
now = datetime.now()

def extract_fishpoint(lastblognum):  
  base_url = "xxxxxxxxxxx"
  results = []
  for textnum in range(lastblognum):
    response = get(f"{base_url}{textnum+1}")
    if response.status_code != 200:
      print(f"Can't request website {base_url}{textnum+1}")
    else:
      #print(response.status_code)
      soup = BeautifulSoup(response.text, "html.parser")
      list = soup.select_one('div.article_content')
      date = list.select_one('span.date').get_text()
      #list = soup.find('div', class_ = "date")
      print(date)
      
      
      #pubdate = find("div", class_="mosaic-zone")
      
      #print(f"{soup.title.string} {base_url}{textnum+1}")

      title_data = {
          'number': textnum+1,
          'date': date,
          'title': soup.title.string,
          'link': f"{base_url}{textnum+1}"
        }
      print(textnum+1)
      results.append(title_data)
      
  return results
  
#여기까지가 블로그를 읽어 제목 리스트를 반환하는 함수다.

#파일에 적는다. 

lastblognum = int(input("Input Blog Number?"))
title_lists = extract_fishpoint(lastblognum)
#print(title_lists)

savedtime = f"{now.year}{now.month}{now.day}{now.hour}{now.minute}{now.second}"
print(savedtime)

file = open(f"{savedtime}.csv", "w", encoding="utf-8")
file.write("Number, Date, Title, URL\n")

for title_list in title_lists:
  file.write(f"{title_list['number']}, {title_list['date']}, {title_list['title']}, {title_list['link']}\n")

file.close()

 

결과를 조금 보면 다음과 같다.

 

Start Num: 7635
Last Num: 7640
Number, Date, Title, URL
7636, 2022. 11. 21. 10:30, 삶의 정답을 알아내면 삶은 질문을 바꾼다., https://fishpoint.tistory.com/7636
7637, 2022. 11. 22. 10:52, 파이선 웹 스크래퍼 만들어 보자. 코드 1, https://fishpoint.tistory.com/7637
7638, 2022. 11. 18. 18:37, 소프트박스 GPIO 할당 표 - 아두이노 실습 플랫폼 softbox, https://fishpoint.tistory.com/7638
7639, 2022. 11. 22. 10:44, 아모르 파티 가사 - 김연자, https://fishpoint.tistory.com/7639
7640, 2022. 11. 25. 11:14, 동호회 송년회 행사 순서, 총회 식순 정리, https://fishpoint.tistory.com/7640

 

 

아름답고 아름답다.

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^