작성
·
16
·
수정됨
0
강사님 도움을 요청합니다. 아래의 문제로 몇일을 끙끙이다 현재의 본인의 수준으로는 해결을 못해서 염치불구 하고 도움을 구합니다.
사이트에서 페이지 넘기기가 안됩니다. 코드를 올립니다.
마지막 부분 반복문에서 순차적으로 다음 페이지로 넘기려고 하는데 다 넘어가지 못하고 에러가 납니다.
페이지를 변수에 담아 프린트 해보면 8개의 페지가 찍이는데
반복문으로 넘어가서는 8개의 페지로 순차적으로 이동이 안되고 걸립니다.
코드는 아래와 같이 했습니다. 바쁘실줄 알지만 길이 없어 문의하니 한번 봐주시면 감사하겠습니다.
import requests
from bs4 import BeautifulSoup
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
from selenium.webdriver.support.select import Select
driver = webdriver.Chrome()
# 사이트 불러 오기
url = 'https://ctx.cretec.kr/CtxApp/ssp/selectSbarPmtnList.do'
driver.get(url)
# 로그인
user_id = ''
user_pw = ''
# 로그인 완료 후 신바람 화면으로 넘어감
id = driver.find_element(By.CSS_SELECTOR, '#ctxId' )
id.send_keys(user_id)
time.sleep(1)
pw = driver.find_element(By.CSS_SELECTOR,'#password')
pw.send_keys(user_pw)
time.sleep(1)
login = driver.find_element(By.CSS_SELECTOR, '#ctxUserVO > button')
login.click()
time.sleep(3)
tag = driver.find_element(By.CSS_SELECTOR,'#content-container > div.content > div.content-body > div > div.sub_promo_cnt > div:nth-child(24) > div.promore > span')
driver.execute_script("arguments[0].scrollIntoView(true)", tag)
time.sleep(5)
tag.click()
tag2 = driver.find_elements(By.CSS_SELECTOR, '#list ul li.cur-pager > a')
time.sleep(5)
print(len(tag2))
time.sleep(5)
for i in tag2:
time.sleep(10)
print(i.text)
time.sleep(15)
i.click()
time.sleep(10)
답변 2
0
0
for i in range(1, 11):
# url의 page 파라미터를 변경해가면서 페이지 이동 하시면 될거 같아요
driver.get(f"https://ctx.cretec.kr/CtxApp/ctx/selectPowerSearchList.do?keyword=&smartKeyword=&prod_cd=&item_nm=&brnd_nm=&item_stdz=&modl_no=&agg_brnd_cd=&agg_pmtn=&agg_contentInfo=&agg_origCounDest=&sort=&agg_cate_1=&agg_cate_2=&agg_cate_3=&agg_cate_4=&pmtn_cls_cd=11&pmtn_seq=14&pmtn_year=2024&pmtn_cnt=1102&comp_cd=W&cateSearch=&pmtnSearch=Y&page={i}&rows=&listType=&prodcontents=&prod_cd_multi=&include_delete=Y")
time.sleep(5)
클릭을 하면서 페이지를 이동시키는 것보다는 URL을 변경하는게 훨씬
쉬워 보입니다!! 참고로 파라미터의 value 값이 없는 애들은 생략해도 돼요~
강사님 아이디 비밀번호는 노출 되어도 무방합니다.
강사님
강사님 확인시 에러난 부분은 , 11월 15일 에서 11월 16일로 상품들이 바뀌어서 이전에 코딩할 때의 상품이 11월 16일이 되면서 다른 상품으로 변경되어 나는 에러 같습니다 이것은 문제가 안됩니다.
다시 코딩 한 것을 올리면
아래의 페이이지의 10페이지까지 반복문으로 코딩을 해서 1페이를 클릭하고 그다음 2 페이지를 클리하고 그다음 3페이지를 클릭, 이렇게 마지막페이지 까지 돌게 하려고 하는데 1페이지에서 걸리고 어떤 때는 2페지에서 걸리고 반복문이 마지막 페이지 까지 실행이 안되네요
위의 반복문에서 페지가 10 개인데 10페이지까지 반복하면서 이동이 안되고 중간에 에러가 나버립니다.
리스트 페이지를 설정에서 확인해보면 동적페이지고
폼태그로 감싸진 테이블 테그라서 그런지( 아이프램은 아닌 것같고)
time 문제로 페이지가 로딩되기 전에 반복문이 실행 되어서 그런지
반복문 중 클릭시점에 페이지가 가리워 져 클릭이 안되나 싶어 스크롤을 페이지 숫자가 다 보이도록 내려 놓고 for 문을 돌려도 안되고
도무지 방법을 찾을 수가 없네요.
강사님 함 확인해주시면 감사하겠습니다.