문과생도 할 수 있다면, 예체능도 가능하다는 믿음으로 이 과제를 합니다.
과제1. 코딩 문법 문제 풀기 (파이썬 복습 문제)
문제와 답을 적어야 하나…뭐 이런 것 까지… 이런 생각을 하다 남들이 올리고 있어서 따라 적어봅니다.
다행히, ‘코딩밸리’에서 파이썬 공부 중이라 어렵지 않았으나, 아직 진도가 나가지 않은 “pyautogui, f-string, try-except’는 chatGPT에게 물어봐서 정답을 맞췄습니다.
그리고, 이 포스팅을 하며 한번 더 눈으로 익히게 되었습니다. (이 커뮤니티의 글쓰기에 임시저장이 없어서 불편하네요.)
과제2. 매일경제 RSS를 활용한 뉴스 크롤링!
과제 목표
RSS 피드를 사용해 링크를 추출하고 각 기사의 내용을 크롤링하여 CSV 파일에 저장하세요!
상세 요구사항
과정
저는 GPT에게 과제의 수행 내역 전체를 질의한 경우와 위 상세 요구사항의 라이브러리로 제한하여 과제 수행
라이브러리 설치
VS Code 실행 및 ‘Task-01’ 파일 생성
라이브러리 설치
jkjang@JKs-MacBook-Pro gpters % pip install feedparser trafilatura
매일경제 RSS 페이지 레이아웃 확인
GPT에 질의/코드
질의 내용
답변 코드
import trafilatura import pandas as pd import requests from bs4 import BeautifulSoup # RSS 피드 URL rss_url = '<https://www.mk.co.kr/rss>' # RSS 피드에서 기사 링크 추출 response = requests.get(rss_url) soup = BeautifulSoup(response.content, 'xml') items = soup.find_all('item') # 기사 링크 목록 생성 links = [item.find('link').text for item in items] # 크롤링 결과를 저장할 리스트 articles = [] # 각 링크를 크롤링 for link in links: downloaded = trafilatura.fetch_url(link) if downloaded: result = trafilatura.extract(downloaded) if result: print(f"크롤링 완료: {link}") articles.append({'link': link, 'content': result}) else: print(f"크롤링 실패: {link}") else: print(f"크롤링 실패: {link}") # 크롤링 결과를 DataFrame으로 변환 df = pd.DataFrame(articles) # 결과를 CSV 파일로 저장 df.to_csv('articles.csv', index=False, encoding='utf-8') print("크롤링 결과가 articles.csv 파일로 저장되었습니다.")
코드 실행 및 파일 확인
이 코드를 복사하여 VC Code의 Task-01에 붙여 넣기
그러나, 실행 버튼을 찾지 못해서 친구에게 실행 버튼을 어떻게 보는지 물어봐서 “Task-01”의 확장자 “.py”를 추가
Task-01.py 실행
그러나, “pandas, requests, bs4’가 없다는 결과가 나와서 이 라이브러리를 설치
Task-01.py 다시 실행
"크롤링 결과가 articles.csv 파일로 저장되었습니다." 문구가 터미널에 출력되고 폴더에 “articles.csv” 파일 생성
그러나, articles.csv에는 아무런 내용이 없음
그래서, 코드상 “https://www.mk.co.kr/rss”를 “https://www.mk.co.kr/rss/40300001/”로 변경하여 다시 실행
터미널 창에 "크롤링 완료: 링크 주소"가 여러 줄 출력
저장된 articles.csv를 텍스트 편집기에서 실행하여 내용을 확인 (엑셀에서 실행시는 인코딩 에러로 한글이 깨져. Numbers에서 정상적으로 확인)
요구사항의 라이브러리로 제한하여 다시 시도
GPT에게 라이브러리를 제한하여 질의
답변 코드
이 박스 삭제가 안되군요. 이 포스팅 창, 뭔가 스타일 조정이 어렵네요.그러나, 과제 정답지와 다른 코드를 생성함
코드 실행 및 파일 확인
VS Code에서 “Task-01-1.py”를 만들어 코드를 붙여넣고 실행
하지만, “크롤링 완료: URL”이 출력되지 않고, "크롤링 결과가 articles-R.csv 파일로 저장되었습니다.”만 출력
생성된 “articles-R.csv” 파일 확인시 내용이 없음
그래서, “import csv”를 추가하여 실행을 하였으나 앞과 동일한 현상
결과
GPT에서 과제 정답지와 다른 코드를 받음
라이브러리 제한을 하지 않았을 때는 성공을 했으나, 과제 요구사항의 라이브러리로 제한한 경우는 파일 생성은 되나 크롤링이 안됨
질문 드립니다. ”https://www.jobkorea.co.kr/Recruit/GI_Read/44775349?sc=225”는 크롤링 할 수 없나요? 이 주소로 크롤링을 테스트할 경우 내용을 가져오지 못하네요.