2023. 11. 9. 14:19ㆍ플러터
새로운 앱을 만들기 위해 크롤링 기능을 사용하고자 찾아보았다,
대상은 네이버에서 제공 중인 EPL 구단 순위 ("https://sports.news.naver.com/wfootball/record/index")이며, 해당 페이지의 구단 순위 데이터를 가져오고자 한다.
웹 스크래핑을 이용하여 웹 정보를 가져오면 된다하여 해당 코드를 사용했다.
이렇게 하게될 경우 recode_inner 클래스의 값을 찾아오게 된다.
하지만 위의 코드를 사용해볼 경우 이상이 발견된다,
가져온 값이 <html><div> 이것으로 끝난다는 것이다,
분명 검색해볼 경우에는 개발자도구를 열 경우 나오는 스크립트가 나오던 걸로 기억하는데
내가 잘못한 것인가를 찾아보았으나, 알고보니 동적 데이터의 경우에는 위의 방법으로 못 가져오는 것이였다.
*동적 데이터란 값이 실시간으로 변경되는 데이터로, 예를들면 네이버 뉴스 항목이나, 과거 있었던 네이버 실시간 검색어와 같은 데이터들을 의미한다.
위의 데이터들은 평범한 웹 크롤링으로는 정보를 못가져옴을 알게되었다.
동적 웹크롤링을 찾아보면 selenium이라는 것들이 나오게 되는데 이건 python에서만 가능한 것이므로 패스하기를 바란다
찾은 방법은 Webview위젯을 이용하는 것이다.
위와 같이 웹뷰 위젯을 이용하여 코드를 가져오면 된다
evaluateJavascript에서 가져올 클래스 및 태그를 지정하여 가져온 후
onPageFinished에서 해당 자바스크립트 코드를 실행시키는 것으로 된다,
다만 onPageFinished에서 evaluateJavascript는 deprecated 되었다고하여 runJavascriptReturningResult 사용을 권장한다고 한다.
일단 사용한 방법은 해당 방법이지만 추후에 다른 방법을 알게되면 가져와볼 생각이다
이만~
'플러터' 카테고리의 다른 글
map 함수 (0) | 2023.12.01 |
---|---|
웹뷰 위젯 분석 (0) | 2023.11.10 |
PreferredSizeWidget 오류에 대하여 (2) | 2023.10.30 |
drawer가 statusbar와 겹칠 경우 (0) | 2023.10.29 |
디버그 리본 제거 (0) | 2023.10.29 |