본문 바로가기

전체 글

(102)
크롤링(crawling)_browserless 크롤링 20221014 8일차 requests는 브라우저 없이 파이썬에서 다이렉트로 서버에 http 요청을 넣는다. 속도나 리소스면에서 훨씬 우월하다. 다만, 클릭등이 안되기때문에 특정 페이지 주소에서만 가능하다. http 소스를 가져오면 다음부터는 BeautifulSoup로 진행하는것은 똑같다. 우선 필요한것들을 import 해주고 requests.get으로 주소를 입력한다. req.text는 selenium의 .text와 문법은 같으나 기능은 다르기에 주의해야한다. 주소를 입력하고 req.text로 http 소스코드를 읽어온다. * .headers는 요청에 따른 상세정보를 보여준다. * .status_code는 접속상태를 숫자로 보여준다 (정상 = 200)
크롤링(crawling)_알라딘 크롤링 20221013 7일 차 다음은 알라딘 크롤링이다. 알라딘은 교보문고와 다르게 베스트셀러 첫 번째 페이지는 약 1~50위가 나와있다. 더욱 충격적인건 바로 이것이다. 태그와 클래스를 확인하기 위해 살펴봤더니 딱히 구분해서 기준이 되는게 없다. 태그 만 가득하다. 이제 규칙을 찾아야 한다. 우선 책 한권 전체를 감싸는 태그와 클래스가 이렇게 규칙적인것을 확인했다. 그리고 개수를 확인한다. 50개다. 그렇담 그 안에있는 코드중에서 로 솎는다면 50개의 책 정보가 나올 것이다. 로 솎았더니 또 문제가 생겼다. 책 사진 오른쪽 부분이 로 감싸진 부분인데. 내가 원하는 정보 외의 정보가 많다. 그래서 인덱싱으로 프린트 해서 결과를 확인해주니 각각, 1번째 2번째 3번째 였고 이를 반복문으로 프린트 해서 돌려주면?..
크롤링(crawling)_교보문고 크롤링 20221013 7일 차 첫 번째 실습은 교보문고 순회 크롤링이다. 먼저 순회 크롤러 정의이다. 순회 크롤러란 같은 양식의 페이지 범위를 쓱 훑는 것이다. 기본 로직은 이러하다 한 페이지의 크롤러를 제작 후그걸 반복문에 넣으면 된다. 간단해 보이지만 간단하지 않다. 우선 가장 기본인 필수 라이브러리를 임포트 해준다. 우리의 목표는 교보문고 베스트셀러의 모든 도서 (약 1000개)의 이름, 저자, 가격을 다 수집해 와서 하나의 자료로 만드는 것이다. 총 45페이지에 1000개의 도서 정보가 실제 했으며 45번의 반복을 반복문을 통해 걸어준다. 그리고 페이지 소스를 저장하고 파싱 했다. 한 페이지에서 원하는 데이터를 추출하기 위해 태그와 클래스별로 데이터를 수집한다. 그리고 각각의 만들어둔 리스트에 텍스트로..
크롤링(crawling)_크롤링 기초 20221012 6일 차 크롤링은 원하는 자료를 컴퓨터에게 시켜서 가져오는 기술이다. (뭔가 단어가 갈고리로 긁어오는 듯한 느낌을 준다.) 속도는 브라우저 없는 크롤링이 빠르며 오늘은 selenium을 통해 크롤링을 했다. selenium 설치법은 이러하다. bs4로부터 BeautifulSoup를 임포트 하여 사용하고 selenium으로부터 webdriver를 임포트 하여 사용한다. * import는 '수입하다', '가져오다'라는 뜻 그리고 import time은 시간을 가져오다. 즉, 우리에게 시간을 벌어준다. selenium을 쓰기 위해 크롬(Chrome)이라는 인터넷 브라우저를 사용할 것이고 크롬(Chrome) 브라우저에서 크롤링하기 위해 크롬(Chrome) 드라이버를 설치해야 한다. 본격적으로 크..
파이썬 시작 (함수) 20221011 5일 차 함수는 반복문에서 사용하는 기능들을 묶어서 사용할 수 있는 자료이다. 함수 안에 for 반복문, if문 등등을 넣어서 원하는 자료를 도출할 수 있다. def를 사용하여 함수를 만든다. * def 함수이름(매개변수): 함수 이름 plus는 a를 매개변수로 하는 함수이다. 따라서 plus 함수에 매개변수 5를 넣어서 실행하면 6 → print(5 + 1) 함수 끝나면 실행 → plus(5)가 종료된 후 print("함수 끝나면 실행") 으로 출력이 된다. 위 사진의 오류의 이유는 간단하다. a를 지정하지 않았는데 a를 바로 출력할수는 없다. 35번에서 6과 none이 출력되는 이유는 return value가 없기 때문이다. 6은 print(a + 1)을 출력한것 뿐이다. sum_fu..
파이썬 시작 (제어문_while 반복문 + 조건문, for 반복문) 20221007 4일차 이제 무한의 세계로 떠난다. 변수를 만들고 while이라는 반복문을 만들어보자. 위의 사진을 해석해 보자면 변수가 0일때 변수가 2보다 작거나 같다면 변수에 1을 더하여 저장하라 그리고 프린트를하라. 요게 저 식의 설명이다. 변수 = 0부터 시작해서 ⇢ 1번째 프린트 변수 = 1 ⇢ 2번째 프린트 변수 = 2 ⇢ 3번째 프린트 변수 = 3 ⇢ 조건 변수 > 2 ⇢ 종료 * 포인트는 예측해서 아 변수가 2이니 다음은 무조건 안되겠구나 하면 안된다. 변수가 3일때까지 가서 False가 일어나는 시점에 조건문은 종료된다. 무한루프는 아주 간단하다 무한대로 가는 조건을 만들어 주면 된다. 컴퓨터에서 실행시켰을경우 몇 초만에 몇 만개의 데이터를 만들어 내기 때문에 저장공간이 터질 가능성이 ..
파이썬 시작 (제어문_if) 20221007 4일 차 이제 컴퓨터를 이용해 계산하는 공부에서 수와 문자는 무엇이고 수는 어떻게 쓰고 문자는 어떻게 쓰며 문자들은 어떻게 쓰며 문자들을 쓰는 방법은 뭐가 있는지 배웠다. 그렇다면 이번엔 조건을 달아보자. 개인적인 강의 후 느낀 점은 조건은 거름망이다. 조건문이 실행되는 과정을 보면서 가장 중요하다고 생각 되었던 부분은 지금 어디에 컴퓨터가 머물러 있는지 알아야 한다는 것이다. 조건문에서는 블록(묶음)이 형성이 되는데 이 블록의 구분과 그다음은 어디로 갈것인지 블록이 현재 끝난건지 등등을 본인이 알고 있어야 한다. 위의 사진에서 블록을 구분하자면 money = Trueifprint(" 집에 왔습니다.") 1블럭 (전체) if money: print(" 책을 삽니다.") 2블럭 else: ..
파이썬 시작 (자료형_딕셔너리) 20221006 4일차 딕셔너리는 단어부터 사전같다. 사전을 보면 일정한 범위 안에서 쓰이는 낱말을 모아서 일정한 순서로 배열하여 싣고 각각의 내용 및 정보가 있는데 딕셔너리 또한 그러한 구조로 저장되는것 같다. 성경책의 몇장 몇절 처럼 딕셔너리 또한 몇 장에 해당하는 key값, 몇 절에 해당하는 value값을 가진다. 또한 딕셔너리의 아이템은 key:value 로 구성된 한쌍이다. 딕셔너리 생성시 {}를 이용한다. 또한 2차원 자료(몇장 몇절)를 이용해서 딕셔너리로 변환 가능하다. key 값에는 중복된 자료가 못 들어가지만 value 값에는 들어갈 수 있는 자료에 제약은 없다. 만약 key 값에 중복된 자료가 들어갈 경우 중복된 key중 마지막 하나만 반영된다. 딕셔너리 또한 인덱싱이 가능하다. 기존의..