홈어시스턴트(Home Assistant) 코로나 확진자수 스크랩(크롤링)

반응형

매일 네이버에 접속해서 코로나를 검색한다음 확진자 수를 확인하는 일이 귀찮아 졌다.

그래서 매일 접속하는 홈 어시스턴트 앱으로 보면 귀찮은 일이 줄겠다는 생각이 들어서 바로 

기릿!

검색을 해보니

있넹  ㅎㅎㅎㅎ 역시 지리는 구만ㅋㅋ

https://www.home-assistant.io/integrations/scrape/

 

Scrape

Instructions on how to integrate Web scrape sensors into Home Assistant.

www.home-assistant.io

크롬은 html 코드를 보기에 간단하다

그래서 크롬을 사용했다.

 

시작에 앞서 크롬에 css selector tester가 있으면 편하다

https://chrome.google.com/webstore/detail/css-selector-tester/bbklnaodgoocmcdejoalmbjihhdkbfon/related?hl=ko 

 

CSS Selector Tester

Test your css selector by using this quick script. Does not support the "HTML" Element or "*" selector.

chrome.google.com

이 친구가 잘 선택 되었는지 

홈어시스턴트에서 서버 리스타트 하기 전에 알수있게 해준다

시간 단축!!


크롬에서 '코로나19' 검색하고.

원하는 값 선택한 뒤에 우클릭!

검사!

뙁!!!

 

class의 이름을 복사한 뒤에 CSS Selector Tester에다가 검색하면 웹에 빨간 박스로 표시가 된다.

여기서 보면 총 4개가 선택 됐는데 이건 내가 원하는 결과가 아니다

확진 환자 칸을 통해 선택해야겠다.

찾고 다시 한번 클래스를 확인하니 이번엔 info_01 이다.

테스터로 확인한 뒤에

테스터에서 한칸 띄우고

신규 확진자 테그를 적으면!!

이렇게 원하는 값만 선택이 되고 이제 이 값을 홈어시스턴트에 넣으면 끝이다.

 

아, 혹시나 원하는 테그가 class가 아닌 id 같은 것일 수도 있는데

이때는 https://www.w3schools.com/cssref/css_selectors.asp

 

CSS Selectors Reference

CSS Selector Reference CSS Selectors In CSS, selectors are patterns used to select the element(s) you want to style. Use our CSS Selector Tester to demonstrate the different selectors. Selector Example Example description .class .intro Selects all elements

www.w3schools.com

여기에 접속하면 어떻게 해야하는지 보여준다.

에를 들어 id는 #어떤것 처럼 된다.

class는 .어떤것 인 것처럼


이제 홈어시스턴트로 넘어와서

configuration.yaml의 sensor에 추가하면 되는데 

 

  - platform: scrape
    name: "총확진자수"
    resource: https://search.naver.com/search.naver?where=nexearch&sm=top_sug.pre&fbm=1&acr=4&acq=zhfhsk&qdt=0&ie=utf8&query=%EC%BD%94%EB%A1%9C%EB%82%9819
    select: ".info_01 p"
    unit_of_measurement: "명"
  - platform: scrape
    name: "신규 확진자수"
    resource: https://search.naver.com/search.naver?where=nexearch&sm=top_sug.pre&fbm=1&acr=4&acq=zhfhsk&qdt=0&ie=utf8&query=%EC%BD%94%EB%A1%9C%EB%82%9819
    select: ".info_01 em" 
    unit_of_measurement: "명"

platform: scrape

name: "원하는것 아무거나"

resource: 인터넷 주소

select: "css selector tester로 확인한 테그 값"

unit_of_measurement: "단위로 여기서는 사람수 니까 '명'"

왼족 상단에 빨간 저장 버튼! 반드시 클릭!!

반드시 해야된다.!!

리스타트!!!

이렇게 카드 추가하면 기모띠 ㅋㅋㅋㅋ

반응형