728x90
반응형
1. 셀레니움을 설치한다.
$ sudo pip3 install selenium
2. 라우터에 다음 내용을 추가해준다.
/chwideukapp/views.py
from time import sleep
from rest_framework.views import APIView
from rest_framework.response import Response
from selenium import webdriver
chrome_options = webdriver.ChromeOptions()
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")
path = '/usr/bin/chromedriver'
driver = webdriver.Chrome(path, chrome_options=chrome_options)
class ChwideukRouter(APIView):
def get(self, request):
return Response({'success': True})
def post(self, request):
driver.get("https://typo.tistory.com/")
print("+" * 100)
print(driver.title) # 크롤링한 페이지의 title 정보
print(driver.current_url) # 현재 크롤링된 페이지의 url
print("-" * 100)
title = driver.title
url = driver.current_url
driver.close()
return Response({'title': title, 'url': url})
옵션을 추가한 이유는 아래와 같은 에러가 떠서 그렇습니다.
unknown error: DevToolsActivePort file doesn't exist
3. 서버를 실행하고 postman으로 요청을 보내보자.
역시 개발이란 코딩도 힘든데 환경 세팅하는게 더 힘들다.. 수많은 삽질을 한 결과 드디어 기본 틀을 작성하게 되었다.
이 뒤부턴 driver로 원하는 페이지로 이동해서 원하는 데이터를 수집하는게 끝이라 여기서 django rest framework 기초 프로젝트는 종료하겠다. 아래는 selenium 사용에 있어 필요한 메소드를 잘 정리해놓은 블로그이다.
728x90
반응형