DA Study/TIL

[TIL] 동적 웹페이지 스크래핑, 크롤링하기 #python3 #FConline

harrym8n 2024. 12. 27. 00:04

python3 - FC online 개인 프로젝트
👉 프로젝트 Github 바로가기

# BeautifulSoup으로 스크래핑 시도했으나 실패
res = requests.get(https://fifaonline4.inven.co.kr/dataninfo/player/?code=280200104)
soup = BeautifulSoup(res.text, 'html.parser')

soup.find_all('span.comment')


# Selenium으로 성공(일단 테스트로 하나의 리뷰만 스크래핑
comment = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'span.comment')))
print(comment.text)

[ 논리 과정 ]

  1. FC online 인벤에서 특정 카드의 유저 리뷰를 스크래핑 한다.
  2. BeautifulSoup의 find_all()를 사용해서 해당 선택자의 text를 가져와야겠다.

[ 문제 상황 ]

  • FC online 인벤에서 특정 카드의 유저 리뷰를 스크래핑 헤야 한다.
  • 분명 html에서 해당 리뷰들이 보이고 코드도 보이지만 beautifulsoup을 통해 스크래핑 했으나 되지 않았다.
    • css 선택자도 올바르게 작성했으나 안됨

[ 해결 ]

  • 해당 영역이 동적 요소였다. (검사 > 설정 > 디버깅 > javascript 비활성화 하니까 보이지 않음)
  • selenium의 driver를 통해 실시간으로 스크래핑

[ 회고 ]

  • 스크래핑할 때 동적요소, javascript 사용 여부에 따라서 html에 보여도 스크래핑 되지 않는 경우가 있다.