Research/Google products

Googlesheet_크롤링한 데이터 구글시트에 가져오기

RIEM 2022. 1. 25. 22:39
728x90

자료 출처 : 일잘러의 비밀, 구글 스프레드 시트, 강남석 지음

6.3 데이터 집계 함수들로 크롤링하기

IMPORTHTML과 개발자 도구로 개발자되기

웹 상의 데이터를 크롤링해보자

 

 

테이블 태그를 가져오려면 아래와 같이 하면 된다.

 

쉽다. 첫 번째 테이블의 데이터를 가져오라는 의미다.

 

웹페이지에서 리스트 가져오기

ul 또는 ol 리스트를 가져와보자. unordered, ordered list의 약자일 것이다. 

 

이 함수의 문제는 리스트나 테이블이나 찾고자 하는 태그들의 순번을 빠르고 정확하게 파악하기가 어렵다는 점이다. 크롤링 기능을 쉽게 사용할 수 있는 점은 좋으나 기능성은 다소 떨어져서 아쉽다. 

 

IMPORTXML로 뉴스 제목 크롤링하기

IMPORTXML은 IMPORTHTML보다 넓고 왠만한 데이터들은 XPath 문법으로 크롤링해올 수 있다는 점에서 유용하고 기능성이 좋은 함수다. 그 전에 XPath 문법에 대해 조금 더 알아보자.

XPath 문법

  • //tag : 하위 계층 모드에서 tag 존재하는 항목 가져오기
  • /tag : 바로 하위 tag 찾기
  • //tag[@속성=’값’] : 모든 tag 중 특정 속성값이 ‘값’인 태그만 가져오기
  • //@속성 : 하위 계층 내 특정 속성 값 가져옴. 와일드카드 * 사용 가능. 하위 텍스트는 열, 동일 계층 항목은 행으로 가져온다.
    ex) //*[@id=’section_economy’]//ul/li : 문서 전체에서 id 속성값이 ‘section_economy’인 태그 찾아서 그 하위 ul, 그 하위 li 태그를 가져와라.

    <div class =”main_component droppable” id=”section_economy”>



실제 웹사이트의 데이터들을 가져와보자.

 

연합인포맥스의 많이 본 뉴스 리스트를 가져와보자.

 

 

요기 리스트가 있다.

 

XPath 경로를 복사해서 가져왔다.

 

//*[@id="side-scroll-in"]/div[5]/article/section/div/ul/li[1]

 

요렇게 해주었다.

parse error가 떴는데, 파라미터에 쌍따옴표가 중복으로 들어가있어서 그렇다. 쌍따옴표를 ‘’로 바꿔서 다시 파라미터를 세팅해주자.

 

리스트의 1번 데이터밖에 나오지 않는다. 왜냐? li[1]는 리스트의 1번째 데이터만 가져오라는 의미다. 따라서 list 전체를 크롤링하기 위해선 인덱스를 지칭하는 [1]를 제외해준다.

 

이제 잘 나온다!

 

리스트의 href 속성 즉, url도 가져올 수 있다.

이는 XML 문법에 대한 전반적인 지식이 있으면 이해하기 수월하다.


데이터 통으로 가져오기

XML 주소를 *로 지정해버리면 해당 링크 내 모든 데이터를 통으로 가져올 수 있다.

 

728x90