괴발개발 24

beautifulsoup와 selenium을 이용하여 스크롤이동 후 크롤링하기

제곧내 입니다~ element로 스크롤 이동 하는 코드 입니다~ html = driver.page_source soup = BeautifulSoup(html, 'html.parser') count = len(soup.select('.list_basis > div > div > li')) for idx, li in enumerate(soup.select('.list_basis > div > div > li'), start=1): this_li = driver.find_element_by_xpath('//*[@id="__next"]/div/div[2]/div[2]/div[3]/div[1]/ul/div/div['+str(idx)+']/li') # location = this_li.location_once_sc..

[Django] kakao social login allauth로는 안되는 증상

이번에 소셜로그인 기능에서 구글로그인과 같이 카카오로그인을 추가했다 django-allauth에서 구글로그인은 정상적으로 되었으나, 카카오 callback 함수에서 자꾸 오류가 나서 몇시간 삽질결과 현재 allauth에선 카카오 로그인 기능이 정상적으로 되자 않는 것 같다...(개삽질...) 어쩔 수 없이 카카오 로그인 함수는 기본 django.contrib.auth import login 기능으로 처리했다 login(request, user, backend='django.contrib.auth.backends.ModelBackend') backend는 allauth backend와 충돌하기 때문에 인자로 추가해야 한다 이 후 정상적으로 로그인 가능!!

괴발개발/Django 2021.08.07

[Django] User Group을 이용하여 권한을 부여해보자 (minxin사용)

django에서 user를 이용하여 view에 접근 권한을 주려면 여러방법이 있다 user마다 개인권한을 주는 방법이 있지만 그룹으로 권한을 주고 싶을 땐 django의 기본 셋팅되어있는 user group를 이용해 mixin을 만들어 view에 권한을 줄 수 있다 mixin.py 파일 생성 from django.core.exceptions import PermissionDenied class GroupRequiredMixin(object): """ group_required - list of strings, required param """ group_required = None def dispatch(self, request, *args, **kwargs): if not request.user.is_..

괴발개발/Django 2021.08.04

[django] duplicate key value violates unique constraint 오류 문제 해결

postgresql을 tableplus로 직접 조작하다가 아마 django 마이그레이션이랑 충돌이 난 듯 하다 ㅠㅠ python manage.py dbshell 창에서 아래 명령어를 입력하거나, DB에 접속해서 입력하면 reindex 된다~ SELECT setval(pg_get_serial_sequence('service_servicecategory', 'id'), max(id)) FROM service_servicecategory; (sequence를 따로 안만들어도 되는 방법)

괴발개발/Django 2021.08.03

[heroku] selenium 이용 시 buildpacks문제 해결 (google-chrome, chromedriver version) error

헤로쿠에서 잘되고 있던 selenium이 아래와 같이 문제 selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version 92 Current browser version is 91.0.4472.164 with binary path /app/.apt/usr/bin/google-chrome 삽질 결과 빌드팩은 문제 없으나 헤로쿠에서 빌드 시 캐시저장한 것이 문제였다 아래와 step과 같이 진행 빌드 캐시 지우기 Heroku Builds 플러그인 을 사용하여 앱의 빌드 캐시를 지울 수 있습니다 . 먼저 플러그인을 설치합..

괴발개발/heroku 2021.08.02

git push 할 때 오류해결 : The requested URL returned error: 403

파일 수정 후 commit 메시지를 쓰고, 파일을 올리려고(push) 하던 중 생긴 에러 문제> $ git push -u origin master 입력 후 # 응답메시지 - id: userId, Repository: myproject remote: Permission to userId/myproject.git denied to userId. fatal: unable to access 'https://github.com/userId/myproject.git/': The requested URL returned error: 403 분석> HTTP 403 Forbidden 클라이언트 오류 상태 응답 코드는 서버에 요청이 전달되었지만, 권한때문에 거절되었다는 것을 의미합니다. 이 상태는 401과 비슷하지만, 로..

괴발개발 2021.07.29

쿠팡 파트너스 API 인증 시 Specified signature is expired 문제 해결방법

처음에 파이썬 버젼에 문제가 있는 줄 알았는데 진짜 문제는 오류메시지 그대로, datetime에 현재시간 GMT 시간이 달라서 생긴 오류입니다 기존 코드에서 아래코드로 import 문과 함께 변경해주면 정상적으로 실행됩니다 기존 import time datetime = time.strftime('%y%m%d') + 'T' + time.strftime('%H%M%S') + 'Z' 변경 dateGMT = strftime('%y%m%d', gmtime()) timeGMT = strftime('%H%M%S', gmtime()) datetime = dateGMT + 'T' + timeGMT + 'Z' 다른 분들은 문제 없도록 파트너스 API 가이드 부분을 이 처럼 수정해주셨으면 좋겠다 ㅎㅎ

괴발개발/API 2021.01.30

셀레니움(selenium) session deleted because of page crash 문제 해결!

selenium.common.exceptions.WebDriverException: Message: unknown error: session deleted because of page crash from unknown error: cannot determine loading status from tab crashed 셀레니움을 이용해 크롬브라우져로 크롤링을 하다보면 위와 같은 오류 메시지가 출현 할 수 있다 이유는 크롬드라이버에 shm 메모리가 부족하여 나오는 문제인데 아래와 같이 option에 파라미터로 추가해주면 된다. chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--disable-dev-shm-usage') dri..

티스토리 API 사용하기 - 2021년ver

티스토리 API를 이용 해 파이썬(python)으로 글을 작성해보겠습니다! 급하신 분은 맨 아래 코드만 참고 하시면 됩니다~ 1. 아래 링크에서 앱 등록을 해주세요 TISTORY 나를 표현하는 블로그를 만들어보세요. www.tistory.com 2. 발급 받은 앱 아이디/키/CallBack URL 확인 3. 아래 링크에서 티스토리 오픈 API doc 확인 소개 · GitBook No results matching "" tistory.github.io OAuth 2.0방식으로 인증하는데... 그냥 간단하게 등록 된 callback url로 인증하는 방식입니다 우리는 글 작성에 필요한 부분만 아래서 다루고 자세한 내용은 링크로 이동해서 둘러보세요 4. 글 작성에 필요한 인증하기(Access Token 발급)..

괴발개발/API 2021.01.26