일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Python
- 태그
- HTML
- 자격증
- scraping
- SQL
- 슬라이싱
- SQL 개발자
- CSV
- 1과목
- 스크랩핑
- 조건문
- 데이터베이스
- 정보처리기사
- Crawling
- django
- 데이터 타입
- 딕셔너리
- 튜플
- 파이선
- 정리
- 메서드
- 파이썬
- 프로젝트
- SQLD
- lv0
- 프로그래머스
- time.sleep
- 자격증공부
- 크롤링
- Today
- Total
나의 공부 일기
프로젝트) 크롤링/스크랩핑 프로젝트 4일차 본문
같이 프로젝트를 진행한 팀원: https://jihoon44-it.tistory.com/
3일차 프로젝트 링크 입니다.
https://k-python-note-taking.tistory.com/61
4일차 와 5일차에서는 장고와 부트스트랩을 활용하여 웹페이지를 간단하게 만들어보겠습니다.
첫번째로 3일차에 만들어두었던 csv파일을 하나의 csv파일로 합쳐주었습니다.
우선 file_path에 내 csv파일이 있는 경로를 설정해주었습니다.
files = glob.glob(file_path + '/*구.csv') glob.glob라는 csv파일을 합쳐주는 패키지를 설치해여 사용해주었습니다.
file_path에 구.csv로 끝나는 모든 csv파일을 선택해준뒤
dfs라는 리스트에 for문을 이용해여 모든 csv파일이 들어있는 files를 각각 DataFrame으로 읽어와서 추가해주었습니다.
result에 이전에 담아두었던 모든 DataFrame들을 합처주어 하나의 csv파일로 만들준비를 하고.
result.to_csv로 crawling_서울시_자치구_카페_조사.csv 라는 csv파일을 만들어주었습니다.
index=False는 첫번째 열에 원래 0,1,2,3,4 라는 카운트가 들어가야되는데 이것을 없애주었습니다.
이렇게 crawling_서울시_자치구_카페_조사.csv 라는 csv파일을 생성해 주었습니다.
저는 장고에서 이 csv파일을 활용하기 위해 이를 장고 데이터베이스로 생성하였습니다.
csv파일 읽어와서 내 데이터베이스로 만들기 위해서는 먼저 장고에 그 csv파일 내의 있는 각각의 내용들을 담기위해 장고에서 모델을 만들어주어야 됩니다.
아 먼저 장고를 활용하기 위해서는 장고가 무엇인지 알아야합니다.
간단하게 장고는 웹페이지를 쉽게 만들 수 있는 툴? 이라고 보면됩니다.
장고가 가지고 있는 뼈대 함수를 활용하여 간단하게 만들어 줄 수 있습니다.
장고를 하기전에는
cmd창에서 pip install django 로 장고를 설치해주고
내가 프로젝트를 생성하고싶은 경로에서
django-admin startproject 프로젝트이름으로 프로젝트를 생성해줍니다.
웹사이트를 만드려면 이 프로젝트의 앱도 생성해주어야 하는데, 방금 생성한 프로젝트 폴더로 들어가면 manage.py 라는 파이썬 파일이 있습니다.
이를 활용해서 python manage.py startapp 앱이름 으로 앱을 생성해주면 프로젝트 준비가 어느정도 끝납니다.
보통
https://docs.djangoproject.com/ko/4.2/intro/tutorial01/
이 장고 튜토리얼을 가지고 공부를 많이 하신다고 하니 참고하시면 좋을것같습니다.
더 자세한 내용은 이후에 한번 더 정리해서 올리도록 하겠습니다 : )
이 모델에서는 데이터베이스의 테이블을 만들어줄 수 있습니다.
처음 파일의 이름과 파일의 경로를 사용해주기위해 file_name 과 file 이라는 칼럼(필드)들을 생성해주었습니다.
각각 CharField 라는 문자열 필드, FileField라는 파일 필드 입니다.
만약에 추가적인 파일을 업로드 한다면 (upload_to='uploads/') 이 경로에 저장되게 됩니다.
예를 들어, 만약 Django 프로젝트의 루트 디렉토리가 /home/user/myproject/이고, 파일 이름이 ex.csv인 경우, 이 파일은 /home/user/myproject/uploads/ex.csv 경로에 저장될 것입니다.
디렉토리 루트는 setting 에서 확인해줄 수 있습니다.
기본적으로 장고에서는 이런 루트디렉토리를 사용하고 있습니다.
추가적으로 그 csv파일의 내용을 저장해줄 모델도 생성해주었습니다.
TextField는 CharField와 같은 문자열 필드지만 보다 양이 많은 내용을 저장합니다.
URLField는 말 그대로 링크를 저장하는 필드입니다.
마지막에 함수 __str__를 사용함으로써
모델 SeoulCafeList를 프린트하게 된다면 self.name 즉 나 자신의 name값이 보여지게 됩니다.
이렇게 모델을 만들어주었으면 이제 데이터를 삽입해주어야 합니다.
저는 장고쉘에서 이 코드를 작성하였습니다.
장고 쉘은 기본적으로 장고프로젝트를 생성하게 된다면 manage.py 라는 파이썬파일이 생성되는데
이 파이썬 파일에 shell이라는 기능을 사용하여 파이썬shell를 열어준것입니다.
여기서 파이썬 코드를 작성해줄 수 있습니다.
데이터베이스에 값을 넣어주기 위해
os라는 파이썬의 내장모듈을 사용해주어
이를 활용하여 .csv라는 모든 파일들을 찾아 csv_files 라는 리스트에 넣어주었습니다.
file_path에는 각 파일의 경로를 어주었고
마지막에 create해줌으로써 데이터베이스를 생성해주었습니다.
두번째 모델입니다.
이렇게 csv 패키지를 활용하여 파일을 불러들인 후 reader 로 csv파일의 모든 내용을 가져왔습니다.
for문으로 reader에 들어있는 리스트들을 하나씩 가져온 후 그 리스트에서
모델에 그 칼람에 해당하는 값들을 가져와 넣어주어 데이터베이스를 생성해주었습니다.
그럼 이렇게 데이터베이스가 만들어지게 됩니다.
이렇게 장고 모델을 생성해주었습니다.
5일차에서는 이를 활용하여 웹페이지를 만들어보도록 하겠습니다.
'프로젝트' 카테고리의 다른 글
프로젝트) 크롤링/스크랩핑 프로젝트 5일차 2/2 (1) | 2023.12.12 |
---|---|
프로젝트) 크롤링/스크랩핑 프로젝트 5일차 1/2 (1) | 2023.12.11 |
프로젝트) 크롤링/스크랩핑 프로젝트 3일차 (4) | 2023.12.06 |
프로젝트) 크롤링/스크랩핑 프로젝트 2일차 (2) | 2023.12.05 |
프로젝트) 크롤링/스크랩핑 프로젝트 1일차 (5) | 2023.12.04 |