728x90
반응형
1. 크롤링 이란?
- 데이터를 수집하고 분류하는것, 주로 인터넷 상의 웹페이지의 html,문서 등을 수집해서 분류하고 저장하는것.
2. selenium
- 셀레니움 라이브러리를 사용하는 이유 : 웹 페이지의 DOM에 접근하여 요소를 가져올수있다.
- 웹 브라우저를 제어하고, 마우스 또는 키보드 입력을 자동화 하여 웹사이트에 접근-데이터를 가져올수 있다.
- 속도가 다소 느리다.
3. selenium 라이브러리 설치하기.
- !pip install selenium을 실행
- https://chromedriver.chromium.org/downloads 접속후 chrome브라우저 버전에 맞는 드라이버 받기
- 압축을 풀고, chromedriver.exe파일이 생성된다. -> 작업 할 폴더로 옮겨놓는다.
- 다음과 같은 코드로 크롬 드라이버를 불러올수 있다.
from selenium import webdriver
my_driver = webdriver.Chrome("chromedriver.exe")
4. 크롤링할 데이터 정하기.
- 당근마켓 웹페이지에서, 각자 맡은 구를 가지고 데이터를 가져온다.
- 데이터는 상품이름, 판매자닉네임,주소,상세내용,가격,크롤링한 시간, 게시글의시간(~시간전), 채팅수, 조회수, 관심수
5. 코드 작성
- 5-1 : import 하기
from selenium import webdriver
from selenium.webdriver.common.keys import Keys #다양한 키사용 가능하게해줌
import bs4
import time #크롤링할때 대기시간을 준다
import datetime #크롤링 시간 측정
import re
import pandas as pd
my_driver=webdriver.Chrome('chromedriver.exe')
- 5-2 : 크롬드라이버 사용 준비하기, 크롤링시작 시간 찍기.
my_driver.get('http://www.daangn.com/hot_articles')
datetime.datetime.now().strftime('%Y-%m-%d %H:%M') #연-월-일 시-분
- 5-3
my_delay=0.3 #0.3초만큼 딜레이 시간을준다.
my_driver = webdriver.Chrome('chromedriver.exe') #크롬을 띄운다.
my_driver.get("http://daangn.com/hot_atricles") #당근웹사이트로 접속한다.
- 유의사항. 특정 selector를 가져올때, 한개가 아닌 여러개를 가져오려면 elements로 써야한다.(s를 붙여준다.)
- 유의사항2. xpath를 이용할때, 숫자는 쓸수 없다. str형태로 바꾸어주어야한다.
driver.page_source: 브라우저에 보이는 그대로의 HTML, 크롬 개발자 도구의 Element 탭 내용과 동일.
requests 통해 가져온 req.text: HTTP요청 결과로 받아온 HTML, 크롬 개발자 도구의 페이지 소스 내용과 동일.
시작 일 | 21.04.06 | 종료 일 | 합 계 | ||
역할 또는 작업내용 |
공동 작업 - 크롤링 코드짜기 |
||||
사용 기술 | selenium(셀레니움) chromedriver(크롬 드라이버) |
작업환경 | 주피터 노트북 python3 |
||
인원 | 5명 | 메모 | 각자 크롤링 코드를 짜면서 상황을 공유하고, 더 빨리 되는 팀원분의 코드를 사용하였다. 정말... 어렵다. 잘하는 사람은 역시 빠르다. |
728x90
반응형
'활동 > 팀 프로젝트' 카테고리의 다른 글
팀 프로젝트[365(나와 나를 연결할 기록들)]: (0.아이디어&팀구성) (0) | 2021.12.04 |
---|---|
[2020년][언텍트 스터디 파티] 비대면으로 파티를 열어보자. (0) | 2021.11.03 |
팀프로젝트[고기당]: (7.후기) 후기와 영상링크 첨부 (0) | 2021.02.18 |
팀프로젝트[고기당]: (5.디자인 작업)(7)전체 가게 리스트 (0) | 2021.02.16 |
팀프로젝트[고기당]: (6.발표준비)(2)영상편집 (0) | 2021.02.16 |
댓글