흐름상.. 앞파트에 나왔어야 할것 같지만^^;;
일단 쓰고싶은대로 쓴다~
우선 BeautifulSoup이 뭘까?
BeautifulSoup은 html의 코드를 추출하는 녀석 정도로 생각하면 좋다.
그러니까 어쨌든 크롤링을 하려고 하는 것이고, 이 과정에서 html구조에서 내용을 뽑아야하니까 BeautifulSoup을 쓴다.
정도로 이해하고 넘어갈 수 있다.
특히 내용을 정리하다보면서 정적수집, 동적수집 등의 내용을 확인했는데, 덧붙여 정리해보면 정적수집에서는 일반적으로 requests + BeautifulSoup 조합으로 한다.
requests로 html을 받아오고, 여기서 BeautifulSoup을 활용해서 파싱을 한다('html.parser')
대체로 네이버뉴스같은 사이트들.
동적사이트의 경우 Selenium을 활용해서 ChromeDriver를 활용한다.
어떻게 보면 이 과정이 매크로같달까? 로그인하거나 클릭 하는 매소드를 넣어서 원하는 페이지? 로 들어간 후
BeautifulSoup을 활용해서 크롤링을 할 수 있다.
내가 requests와 Selenium을 모두 활용해본 결과 경험담을 정리하자면
requests
- pagenumber 같은 것이 1, 11, 21, 31 이렇게 규칙적으로 넘어가고 url에 포함이 된다면 for 문을 돌려서 requests만으로도 충분히 크롤링할 수 있었다.
- 이런경우 아주 빠르고 쉽게 할 수 있었다. 대표적으로 네이버 뉴스 검색과 제목, 본문 가져오기 등!
Selenium
- 클릭을 해서 table을 변경했는데도 url에는 변경이 안되는 경우가 있다.
- 이럴땐 Selenium과 ChromeDriver를 활용해서 약간 매크로처럼 크롬 띄워서 여기 들어가고, 클릭해~ 그리고 이거 눌러~ 그러면 이 페이지를 불러올꺼야~ 하고 크롤링을 할 수 있었다.
- 내용을 찾아보니 Selenium이 조금 더 시간이 걸린다고 했고, 실제로도 조금 더 걸렸던 듯? 2022년 전체 데이터를 가져오는데 한 20분..정도? 물론 browser.quit()과 time.sleep(10)을 활용하긴 했당
근데 이거 매소드 클릭, 입력 등등 넣을 수 있어서 아주 재밌어
근데 나는 생각해보니까 크롤링할때
Selenium과 BeautifulSoup의 조합으로 했던것 같구만..
뭐든 크롤링만 되면 되는거 아니겠어ㅎㅎ
'크롤링' 카테고리의 다른 글
| 내맘대로 크롤링(5): 구조를 좀더 살펴보자~ (0) | 2023.07.21 |
|---|---|
| 내맘대로 크롤링(3): BeautifulSoup을 활용해서 원하는 것 가져오자! (0) | 2023.07.09 |
| 내맘대로 크롤링(2): CSS 선택자의 종류 (0) | 2023.07.09 |
| 내맘대로 크롤링(1): HTML구조와 태그 (0) | 2023.07.09 |
| 내맘대로 크롤링 (0): 크롤링을 하게 된 이유 (0) | 2023.07.09 |