728x90
scraping이란? crawling이란?
의미적으론 컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것
원하는 데이터를 추출하다, 원하는 데이터를 긁어오다의 의미
차이로는
web crawling
- 수많은 웹사이트들을 체계적으로 돌아다니면서 URL, 키워드 등을 수집하는 것
- (보통 검색 엔진이 웹사이트를 인덱싱하기 위해서 사용됨.)
web scraping
- 웹사이트에서 필요한 데이터를 긁어오는 것
Beautifulsoup
- HTML, XML파일의 정보를 추출해내는 python library
- python 내장 모듈인 request나 urllib을 이용해 HTML을 다운 받고, beautifulsoup으로 데이터를 추출
- REST API에서 데이터를 가져올 때에도 사용됨
- 서버에서 HTML을 다운받음
- HTML을 파싱하고 데이터를 크롤링 하는데에만 쓰임
Selenium
- 자동화 테스트(버튼 클릭, 스크롤 조작 등등)에 사용되는 프레임워크
- 셀레늄을 이용한 크롤러는 웹 페이지에서 javascript 렌더링을 통해 생성되는 데이터들을 손쉽게 가져올 수 있음
- 인터넷 브라우저를 통해 크롤링을 하는 개념이라, 실제 보여지는 웹 페이지의 전부를 가져올 수 있고, 디버깅 방법 또한 직관적
- 웹 브라우저를 실제로 진행시키는 방법이기 때문에 속도도 많이 느리고, 메모리도 상대적으로 많이 차지
- 멀티프로세스를 사용해서 여러 브라우저로 크롤링 하도록 하면 속도를 일정 부분 개선가능
- 페이지의 단일 element에 접근하는 메소드
Scrapy
- 파이썬으로 작성된 web crawling framework
- 미들웨어, 파이프라인, javascript renderer(splash), proxy, xpath, CLI 등 다양한 기능들과 플러그인들을 사용할 수 있다.
- 병렬처리, robots.txt 준수여부, 다운로드 속도 제어 등 설정 가능하다.
- 플러그인들이 호환이 잘 안되는 편
- 직접 BeautifulSoup나 lxml을 사용가능
- XPath를 사용함으로써 복잡한 HTML소스를 쉽게 크롤링
- HTML을 다운로드하고 데이터에 접근하여 저장
*lxml이란?
2021.01.12 - [Python] - [Python] lxml이란?
참조:
728x90
'language > Python' 카테고리의 다른 글
python 2 vs python 3 주요 차이점 (0) | 2021.08.19 |
---|---|
[Python] 조건문(if)-제어문,분기문과 차이, 반복문(while문,for문), 예외처리(try, except, else, finally) 개념과 예제 (0) | 2021.01.13 |
[Python] 파이썬의 자료형과 예제 (0) | 2021.01.12 |
[Python] lxml이란? (0) | 2021.01.12 |
[python]파이썬이란? 파이썬으로 할 수 있는 것들과 할 수 없는 것들 (0) | 2021.01.03 |
댓글