프로젝트/My
MY PROJECT(8)Trouble Shooting - 경기 정보 크롤링
내이름효주
2024. 5. 2. 13:23
- 경기 정보 크롤링
- 🚨 문제🚨
- 원하는 태그에 대한 정보를 크롤링하지 못한다!!!!
- 🌠 해결방법🌠
- 태그에 해당하는 값을 못찾아와서 GPT한테 물어보니 " WebDriver가 페이지 로드를 기다리도록 하는 것이 좋습니다. WebDriverWait를 사용하여 해당 요소가 나타날 때까지 대기하는 방법"을 써보라고 했다
// 웹 페이지 로드를 위한 대기 WebDriverWait wait = new WebDriverWait(driver, 10); wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector(".relative")));
- 페이지에서 라디오 버튼을 클릭해서 정보 크롤링하는 방식
➡ 이 방법은 잘 안됐고 url을 새로 찾아와서 크롤링에는 성공을 했다// 버튼을 찾아 클릭 WebElement button = driver.findElement(By.cssSelector(".main-container section div:nth-child(2) button")); // 버튼의 CSS 선택자를 넣어주세요 button.click(); // 라디오 버튼이 선택된 후에 나타나는 요소를 기다림 wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("tr")));
project_0312 selenium
제공된 pom.xml 파일은 크롤링 코드와 직접적으로 관련이 없는 것으로 보입니다. 그러나 몇 가지 개선 및 주의사항이 있습니다:의존성 버전 확인:현재 Selenium의 버전은 4.9.0이지만, 가장 최신 버전
velog.io
- 태그가 tr,td 형태로 있는데 tr은 크롤링 성공시키고, td는 찾을 수 없다고 한다
➡ .xPath로 태그 순서대로 다 끌어와서 하니까 된다 - 띄어쓰기가 적용되어있는데 원하는 속성에 값을 넣어주기 위해 문자를 치환시킴
String t = text.getText().replace("\n", ",").replace(")","),").replace("여자", ",여자,").replace("19", ",19").replace("16", ",16").replace(":00",":00,").replace(":30",":30,").replace("육관","육관,").replace("움","움,").replace("ER","ER,").replace("nd","nd,"); String a = t.replace(".,", ".").replace(",,", ",").replace(" , ", " ");
project_0313 selenium 오류
오류: org.openqa.selenium.ElementNotInteractableException: element not interactable (Session info: chrome-headless-shell=122.0.6261.112)"element not in
velog.io
- 마지막으로 ,를 치환하는 과정에서 ,를 계속해서 알아듣지 못한다!!! StringTokenizer를 통해서 겨우 해결을 했다...
- 태그에 해당하는 값을 못찾아와서 GPT한테 물어보니 " WebDriver가 페이지 로드를 기다리도록 하는 것이 좋습니다. WebDriverWait를 사용하여 해당 요소가 나타날 때까지 대기하는 방법"을 써보라고 했다
- ✨ 알게된 점✨
- 선택자를 찾는 방식 말고 xPath경로를 통해서 태그를 찾는 방식이 있었다