목록전체 글 (214)
파파비의 블로그
보호되어 있는 글입니다.
보호되어 있는 글입니다.
api를 활용하여 웹 서비스를 진행하는 경우 크롤링을 했을 때 해당 데이터가 html에 적용되어 오지 않는다. html에 api를 통해 정보를 가져온 후 동적으로 적용하기 때문이다. 개발자도구 -> network에 가면 해당 페이지가 요청하는 api들을 확인할 수 있다. (참고 : api url에 get 요청을 보내면 json형태의 data를 받게 된다) 따라서, 크롤링을 할 때 웹페이지가 api를 통해 정보를 가져온 후 dynamic하게 된 형태라면 해당 api url을 찾아 직접 서버에 get request를 보내고, 거기서 json 형태의 data를 받아 가공하면 된다. 다만, api 들은 크롤러를 통한 기계적인 접근을 막는 경우가 많아 requests.get에 header 설정을 해주어 정보를 얻..
일단 필요한 개념부터 정리하면 Query 웹서버에 get 요청을 보낼 때, 조건에 맞는 정보를 위한 변수 자세한 내용은 https://velog.io/@pear/Query-String-%EC%BF%BC%EB%A6%AC%EC%8A%A4%ED%8A%B8%EB%A7%81%EC%9D%B4%EB%9E%80 Query String 쿼리스트링이란? 사용자가 입력 데이터를 전달하는 방법중의 하나로, url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 말한다.http://host:port/path?querystringquery parameters( 물음표 뒤에 = 로 연결된 key valu velog.io 여기가 설명이 잘 되어 있다 requests에 get request를 보낼 때, params 매개변수로..
크롤링? > 웹 페이지에서 필요한 정보를 추출해내는 작업 - 웹 페이지? > HTML 문서임 - HTML을 가져오기 위해 Request lib 사용 - 가져온 HTML 분석을 위해 BeautifulSoup lib를 사용 > 크롤링을 하는 프로그램을 '크롤러'라고 부름 BeautifulSoup 라이브러리 - HTML, XML, JSON 등 파일의 구문을 분석하는 모듈 - 특히 크롤링에서는 가져온 HTML 파일을 분석하기 위해 쓰임 1) 파일 열기 soup = BeautifulSoup(open("index.html"), "html.parse") - 관례적으로 soup라는 객체를 사용함 - index.html 파일을 열고, 그것을 html로 분석하라는 의미 - "html.parser"를 굳이 명시 안하면 자동..
1) 매개변수가 많을 때, 이름 지정해주기 파이썬 메소드/함수에서 매개변수가 많으면 순서를 다 기억해야할까? dart는 이름을 지정할 수 있도록 사전에 조취를 취하면 매개변수=값, 이런식으로 표현이 가능해지는데, 파이썬은 그것이 자동으로 구현되어 따로 조치를 할 필요가 없다. def func(name, age): ... func(age=15, name="AA") func("aa",15) #둘 다 된다. #매개변수명을 지정하면, 순서도 상관없다 2) 초기 값 설정해두기 맨 처음에 값이 입력이 안되면 초기값을 부여하도록 할 수 있음 def foo(name, age=14): print(name) # age에 값에 부여가 안되면 자동으로 14가 된다.
Database system에 여러번 호출하는 것은 당연히 퍼포먼스상으로 좋지 않다. Django는 그런 것에 대한 나름대로의 퍼포먼스를 위한 최적화가 되어있다. 장고는 DB에 대한 query에 대해, 해당 output을 활용하기 전까지는 변수에 명령어 형태로 저장한다. 그리고 최종적으로 data가 활용되는 시점에서 각 명령어들을 실행하여 최적의 퍼포먼스로 행하게 된다. 예를 들어, 아래와 같은 코드는 db와 몇번 contact 했을까? best_sellers = Books.objects.filter(is_bestseller="True") amazing_best_sellers = best_sellers.filter(rating__gt=4) print(amazing_best_sellers) 1번이다. 먼저..
Static file? > 내용이 dynamic하게 변하지 않는 부분 > css파일, image file 등을 의미 > view, html 등은 dynamic한 요소들이 있어 static이 아님 이런 파일들을 사용하기 위한 방법은 1) 일단 어디에 저장해두어야할까? > app 수준이라면, app 폴더 내 static > app 이름 폴더 안에 파일 저장 > template 저장 처럼, 폴더 안에 앱이름 폴더를 또 만드는 관례를 따른다. static이라는 폴더로 명명해야한다. 2) Setting를 확인한다. > INSTALLED_APPS 안에 'django.contrib.staticfiles' 이 포함되어 있어야 한다. 디폴트로 되어 있다. (따로할건 없다) 3) 코드로 사용한다. 1. app 수준의 cs..