• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

유튜브 크롤링/키워드 별 크롤링 방법에서 에러발생합니다.

23.02.27 21:13 작성 23.02.27 22:57 수정 조회수 729

1

div#metadata-line > span

위 그림에서 처럼 이것은 인식 합니다만

위 그림에서와 같이 div#metadata-line > span::nth-child(1) 은 인식 하지 못하는 것 같습니다.

info.find_elements(By.CSS_SELECTOR, "div#metadata-line span")[0]

selenium에서는 이렇게 해서 해결했습니다만...

views = info.select("div#metadata-line > span")[1].text

views = info.select("div#metadata-line  span")[1].text

BeautifulSoup에서는 위 코드도 오류가 발생합니다.

답변 3

·

답변을 작성해보세요.

1

새벽별님의 프로필

새벽별

질문자

2023.02.28

 

views = info.select_one("div#metadata-line > span:nth-of-type(1)").text
date = info.select_one("div#metadata-line > span:nth-of-type(2)").text

감사합니다. ^^

해보니 잘됩니다.

nth-of-type이 직관적이어서 저는 요걸 자주 씁니다.

n 번째 있는 요소를 선택하고 싶을 때 아주 유용하죠

완강까지 화이팅입니다!

1

div#metadata-line > span:nth-child(1) 대신에

div#metadata-line > span:nth-of-type(1)을 이용해 보세요

 

  • nth-child : 모든 자식의 순서에서 찾음

  • nth-of-type: 해당하는 자식 태그 요소에서의 순서를 찾음


0

새벽별님의 프로필

새벽별

질문자

2023.02.27

# 조회수
views_date = info.select_one("div#metadata-line").text.split("•")[1].strip().replace("조회수 ", "")
views = "조회수 " + views_date.split("회")[0] + "회"

# 날짜
date = views_date.split("회")[1]

이렇게 해서 해결했습니다.