네이버가 이제 실시간 검색어 부분을 동적으로 불러오도록 정책이 바뀌었네요.
덕분에 불필요한 리소스를 가져올 필요가 없어서 트래픽도 엄청 줄어들고 파싱을 할 때 HTML 파싱이 아닌 json 파싱이 가능해졌습니다.
import requests import json url = 'https://www.naver.com/srchrank?frm=main&ag=20s&gr=0&ma=0&si=0&en=0&sp=0' res = json.loads(requests.get(url).content) rank = [*map(lambda item: item['keyword'], res['data'])] print(rank)
여기서 ag부분은 나이를 의미하고, 나머지 파라미터의 경우에도 검색어 설정 부분에서 주어진 값을 -2에서 2까지 값으로 가중치를 주는 방식입니다. 해당 코드는 20대이면서 모든 가중치를 보통으로 준 경우에 사용하는 코드입니다.
해당 방식으로 바뀌면서 검색어의 차이를 나이 대별이나 관심사의 차이에 따라 어떻게 되는지 알아보는 실험을 하는 등의 작업이 가능하겠습니다.
그렇지 않아도 어제 네이버 드라마 검색 결과를 크롤링해보려고 했는데 동적으로 불러오더군요 ^^
그럼 humit 님께서도 즐겁고 뜻깊은 설 연휴 되세요!
덕분에 늘 많이 배워서 항상 감사드립니다 :)