1. 픽셀을 더하면서 스크롤을 통해 자동으로 수직으로 내려간다. 파이썬에서 자바스크립트를 제어하려면 execute_script() 메서드를 사용해야한다.
# 스크롤기능 모듈화
def scroll_next():
scroll_pixels = 500 # 각 스크롤 단계마다 스크롤할 픽셀 수
current_scroll_position = 0 # 처음 픽셀수0에서 시작 여기서 500씩 더해진다
while True:
# 스크롤 실행
# window.scrollTo(0.500) x,y 수직 스크롤
#execute_script 메서드는 주어진 JavaScript 코드를 브라우저에서 실행
driver.execute_script("window.scrollTo(0, {});".format(current_scroll_position))
current_scroll_position += scroll_pixels
time.sleep(5) # 스크롤 후 5초 대기
# 스크롤 후 페이지 끝까지 도달한 경우 반복 종료
if current_scroll_position >= driver.execute_script("return document.body.scrollHeight;"):
break
1-1. 태그안에 태그를 반복문을 돌려서 찾는다 여기서는 제품이름, 가격을 찾는다.
# 모든 항목 요소 찾기 모듈화
def scroll_fac():
# 태그안에 태그
lis = driver.find_element(By.ID, '태그ID').find_elements(By.TAG_NAME, '태그이름')
# find_elements안에 태그들에 반복문을 돌려 더 세부적인 제목,가격태그들을 찾게하였다.
for li in lis:
try:
product = li.find_element(By.TAG_NAME, '태그이름').text
price = li.find_element(By.CLASS_NAME, '클래스이름').text
print(product)
print(price)
except Exception:
pass
2. 페이지네이션 버튼을 클릭해 다음페이지로 넘어간다.
try:
next_button = driver.find_element(By.XPATH, 'XPATH')
# JavaScript를 사용하여 next_butoon 클릭!
driver.execute_script("arguments[0].click();", next_button)
# 5초 대기
time.sleep(5)
except Exception as e:
print(f"다음 페이지로 이동하는 중 오류가 발생했습니다: {e}")
# 다음 페이지로 넘어가면 5초 대기
time.sleep(5)
3. 결과 화면
상단에 " Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다." 라고 적혀있다.
3-1. 출력 결과화면
'portfolio' 카테고리의 다른 글
HTML, CSS , image slider js웹디자인 포트폴리오 (0) | 2024.06.03 |
---|---|
Django + Postgresql (트라이그램 유사성을 이용하여 유사한단어 검색하기) (0) | 2024.05.08 |
Django + Postgresql (ORM에서 searchVector를 이용하여 모델의 여러 필드검색), RSS feed 제작 (0) | 2024.05.08 |
Django 템플릿페이지에서 form태그 제출로 이메일보내기(게시글공유) (0) | 2024.05.08 |
Django 댓글 비활성화 (0) | 2024.05.08 |