내일배움캠프 46일차

김서영·2022년 11월 8일
1

내일배움캠프 TIL

목록 보기
48/85
post-custom-banner

1. 오늘 내가 한 일!

카카오맵 데이터 크롤링 수정🎡 : 프로젝트의 진행 방향이 변경되어 크롤링 코드를 조금 수정하였다!
장고 백엔드 수정💻 : 수정된 계획에 맞게 CRUD 코드를 수정하였다!

2. 프로젝트 자료

https://github.com/ksykma/DRF_Jeju_list_project/tree/main

3. 문무해알

- 문제점

- 무엇을 몰랐는지(내가 한 시도)

git 저장소 주소 repository 변경법!!
git 저장소 주소를 변경해야 할 일이 있어 검색해보았다!

- 해결 방법

- 알게 된 것

  1. git remote set-url origin [새로운 repo 주소]

  2. git remote remove origin
    git remote add origin [새로운 repo 주소]

- django.db.utils.IntegrityError: NOT NULL constraint failed

- 문제점

django.db.utils.IntegrityError: NOT NULL constraint failed

- 무엇을 몰랐는지(내가 한 시도)

null값이 들어갈 수 없는 곳에 값을 넣지 않아 생기는 오류라고 한다!!

- 해결 방법

models.py에서 값이 들어가지 않아도 되도록 null=True를 넣어줬더니 오류가 사라졌다!!

- 알게 된 것

null=True 는 필드의 값이 NULL(정보없음)로 저장되는 것을 허용!
blank=True는 필드의 값이 빈 채로 저장되는 것을 허용!(빈칸도 가능)
하지만 CharFields()와 TextFields()에서는 예외적으로 Null을 저장하지 않고 빈 값을 빈문자열('')로 저장한다!!
https://codermun-log.tistory.com/154

- TypeError: sequence item X: expected str instance, int found

- 문제점

TypeError: sequence item X: expected str instance, int found

- 무엇을 몰랐는지(내가 한 시도)

join함수를 사용하면서 발생한 오류인데 x번째 item에 str instance가 존재한다고 생각했지만 int값이 나왔다고 알려주는 것이다!!(join을 할 때에는 str형태이어야 하니까!)

- 해결 방법

오류가 난 값을 str형태로 변경해주니 오류가 사라졌다!!
.join(map(str, 리스트이름)) 하면 리스트 안의 인덱스들이 모두 str형태로 변경되며 join된다!!

- 알게 된 것

.join(map(str, 리스트이름))

- Passthrough is not supported, GL is disabled

- 문제점

Passthrough is not supported, GL is disabled

- 무엇을 몰랐는지(내가 한 시도)

크롤링할 때 나는 오류인데 아래와 같이 코드를 추가해주어야 한다!!

- 해결 방법

chrome_options.add_argument('--headless')
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument("--single-process")
chrome_options.add_argument("--disable-dev-shm-usage")

- 알게 된 것

- Can't create base directory: C:\Program Files\Google\GoogleUpdater

- 문제점

Can't create base directory: C:\Program Files\Google\GoogleUpdater

- 무엇을 몰랐는지(내가 한 시도)

- 해결 방법

디렉토리를 만들지 못해 생기는 오류라고 해서 디렉토리를 직접 생성해 주었더니 오류가 해결되었다!!

- 알게 된 것

- NoSuchElementException

- 문제점

NoSuchElementException

- 무엇을 몰랐는지(내가 한 시도)

- 해결 방법

element가 없는것에 대한 크롤링에 대해 exception을 설정해주지 않아 생기는 오류이다!! try&except문을 추가해주었더니 해결되었다!!

- 알게 된 것

try:
	review_info['address'] = driver.find_element(By.CLASS_NAME,"details_placeinfo").find_element(By.CLASS_NAME,"placeinfo_default").find_element(By.CLASS_NAME,"txt_address").text
except NoSuchElementException:
	continue

- TypeError:'type'object is not iterable

- 문제점

TypeError:'type'object is not iterable

- 무엇을 몰랐는지(내가 한 시도)

- 해결 방법

settings.py의 REST_FRAMEWORK튜플이 정상적으로 입력되지 않았기 때문에 일어나는 오류이다!!

- 알게 된 것

4. 저장해 놓으면 좋을 정보!

- 리스트를 문자열로 변환시키는 4가지 방법!

https://codechacha.com/ko/python-convert-list-to-string/

profile
개발과 지식의 성장을 즐기는 개발자
post-custom-banner

0개의 댓글