230513
페이지 내 뉴스 기사(20개) 클릭 > 스크래핑 시 for문 에러
1. for z in range(5, 25)
- 뉴스 기사를 클릭하는 CSS_SELECTOR 경로는 'body > div.container > div:nth-child(5) > div > div.news-item-content > h3 > a'
- nth-child(5) 부터 20개의 기사를 클릭해야 함.
- for z in range(5, 25) 를 했어야 하는데, (5,26)으로 설정해서 에러가 나고 다음 페이지 클릭이 안되었던 것
2. f'body > div.container > div:nth-child({z}) > div > div.news-item-content > h3 > a'
- {z}라는 변수를 반복해서 변경할 것이기 때문에 f-string 설정을 해주었어야 함
3. 다음 페이지로 넘어가기
- 1페이지에서 2페이지로 넘어가는 XPATH 경로는 '/html/body/div[1]/div[23]/a'
- 2페이지 이후부터는 다음 페이지로 넘어가는 경로는 '/html/body/div[1]/div[23]/a[2]'
- CSS_SELECTOR로 해도 1페이지에서 2페이지는 a, 2페이지 이후는 a.next이다.
- f-string으로 변경되는 부분을 {a_tag}로 설정, 1페이지인 경우 a를, 이후는 a[2]로 설정
- ❓❓ a[2] 에서 숫자가 하나씩 늘어나게 해주어야 하는거 아닌가..? 💡 2페이지 이후는 전부 경로가 a[2]
4. 다음 페이지로 넘어가기 (2)
- 다음 페이지 클릭 버튼은 상단의 'pagination'과 하단의 'pagination bottom'이란 class 이름 내에 a 태그로 속해있다.
- 클릭이 제대로 설정이 안된다면, 다음과 같이 버튼이 있는 범위를 설정 > 그 안의 페이지 버튼을 클릭할 수 있도록 설정할 수 있다.
- CLASS_NAME, LINK_TEXT, XPATH 등 다양한 방법이 있음
pageclick = driver.find_element(By.CLASS_NAME, 'pagination bottom')
pageclick.find_element(By.CLASS_NAME, 'next').click()
댓글