Base/Python

[Python] python 에서 Seleium을 통한 동적 크롤링 - 3

반응형

동적으로 움직이면서 크롤링하기

네이버에 해당 사이트를 크롤링해보자.

 

해당 사이트에서 전체 제조사라는 것을 클릭하고 그 나온 결과를 크롤링하려 한다. 

사이트는 https://auto.naver.com/bike/mainList.nhn 다.

 

 

저 전체 제조사라는 버튼을 클릭하려 한다.

 

 

해당 엘리먼트를 가져오는데 class 부분을 가져온다. 이렇게 까지 하면 해당 부분을 클릭하게 된다.

 

그러면 결과가 이렇게 되고 다음에는 해당 부분의 제조사를 모두 가져오기 위해 li 부분을 가져온다.

 

 

해당 부분의 li는 중복되는 경우가 있어서 아래와 같이 경로를 세부적으로 설정하여 만들어 주었다.

 

 

 

그다음은 가져왔던 bikeElements를 리스트 형태로 되어 있는데 이것을 for문으로 하나씩 뽑고 그중에 내가 필요한 span을 가져온다.

 

추가적으로 이미지와 해당 링크에 대한 url을 가져오자

 

 

이제 다음은 저 화살표 버튼을 클릭해서 다음 장에 있는 제조사를 가져오는 것을 해보자. 그전에 현재 위치에서 다음 페이지가 있는지를 확인하고 만약 있다면 버튼을 누르게 하고 아닐 경우에는 작동이 안 되게 만들어야 된다.

 

 

nextBtn이라는 것을 만들고 selector를 통해 해당 경로에 있는 button next를 가져온다. 해당 클래스에서. 을붙이고 title을 넣어준다.

그리고 이게 다음 장이 있는지의 여부에 따라 넘어가야 하기 때문에 is_enabled()를 통해 있는지를 확인한다.

이때 True를 반환하면 넘어갈 페이지가 있다는 뜻이다.

 

마지막으로 if 조건문으로 다음 값이 있을 때 사용하고 위에서 돌렸던 소스들을 가져온다. 

 

반응형