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

반응형

etc-image-0

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

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

기릿!

etc-image-1

검색을 해보니

스크린샷 2021-07-04 오후 5.32.50.png

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

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

이 친구가 잘 선택 되었는지 

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

시간 단축!!

etc-image-3

스크린샷 2021-07-04 오후 5.36.51.png

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

etc-image-5

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

검사!

스크린샷 2021-07-04 오후 5.39.47.png

뙁!!!

etc-image-7

 

etc-image-8

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

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

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

스크린샷 2021-07-04 오후 5.45.42.png

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

테스터로 확인한 뒤에

스크린샷 2021-07-04 오후 5.47.36.png

테스터에서 한칸 띄우고

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

스크린샷 2021-07-04 오후 5.48.29.png

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

 

아, 혹시나 원하는 테그가 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에 추가하면 되는데 

 

스크린샷 2021-07-04 오후 5.55.19.png

- 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: "단위로 여기서는 사람수 니까 '명'"

스크린샷 2021-07-04 오후 5.59.40.png

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

스크린샷 2021-07-04 오후 6.00.53.png
스크린샷 2021-07-04 오후 6.01.15.png
스크린샷 2021-07-04 오후 6.02.20.png

반드시 해야된다.!!

스크린샷 2021-07-04 오후 6.02.40.png
스크린샷 2021-07-04 오후 6.03.28.png

리스타트!!!

스크린샷 2021-07-04 오후 6.08.14.png

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

etc-image-20
반응형