본문 바로가기

셀레니움4

[마켓센싱] 셀레니움으로 다른 경쟁사 홈페이지 스크래핑(더보기 클릭, 새 탭으로 열기, id값 변화 오류들) 230515, 230516 해당 홈페이지는 페이지 번호로 이동하는 이전 홈페이지와 다르게, 더보기(see more)를 클릭하면 추가로 15개씩 기사가 출력되는 형식의 홈페이지이다. 💡 스크래핑 방향 설정 - 필요한 날짜까지 한 번에 더보기를 클릭해서 기사목록을 펼쳐둔다 > 기사를 클릭해 들어간다 > 본문 스크래핑 > 원래 페이지로 돌아옴 - is_displayed()를 활용해 코드 작성 완료 # 더보기 버튼 클릭하는 요소 more_botton = driver.find_element(By.CSS_SELECTOR, '#newsloadmore') for i in range(1, 5): # 4번 더보기 클릭하도록 설정 time.sleep(3) if more_botton.is_displayed(): more_bo.. 2023. 5. 17.
[마켓센싱] '뉴스 클릭 > 본문 스크래핑' 반복 시, 에러 잡기 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}라는 변수를 반복해서 변경할 것이기 때문에 .. 2023. 5. 15.
[마켓센싱] 스크래핑 오류 230511 선택한 페이지 내 기사를 클릭하고 스크래핑하는 반복문에서 뜬 에러 : InvalidSelectorException 에러 선택한 페이지(1페이지) 내 기사의 개수는 20개 반복하고 싶은 것 : 20개의 기사를 클릭해서 들어감 > 스크래핑 기사를 클릭하기 위한 변수 : click_element3 driver.find_element() 말고 WebDriverWait와 EC.presence_of_element_located()를 사용해봄 : 페이지가 로드가 안되었는데 클릭을 하려고 해서 오류가 나는 경우인가 싶어서 해당 CSS_SELECTOR 경로는 f'body > div.container > div:nth-child({z}) > div > div.news-item-content > h3 > a' .. 2023. 5. 12.
Selenium(셀레니움) 개념 익히기, 실습 공부 개념 익히기 유튜브 강의 셀레니움 및 웹 드라이버 설치 !pip install Selenium # chromium 드라이버를 인스톨 하기 위해 업데이트가 필요함 !apt-get update !apt install chromium-chromedriver # 유저 라이브러리에 설치된 드라이버를 bin에 카피해둠 !cp /usr/lib/chromium-browser/chromedriver /usr/bin # 패스 설정 import sys sys.path.insert(0, '/usr/lib/chromium-browser/chromedriver') 웹 드라이버 설정 from selenium import webdriver options = webdriver.ChromeOptions() options... 2023. 5. 4.