>source

Selenium을 사용하여 Python으로 웹 스크래핑 스크립트를 작성 중입니다 (여기 링크).https://www.hltv.org/stats/players) 각 플레이어와 관련된 모든 링크를 긁어 내고 싶습니다.

많은 플레이어를 보여 주지만 전부는 아니고 실제 페이지에 이러한 요소를 표시하는 버튼이 보이지 않고 페이지 뒤에 숨겨져 있습니다. 페이지를 살펴보면 페이지에 표시되는 내용을 보여주는 테이블이 있고 클래스 이름 "hidden"아래에 더 많은 항목이 있습니다. 하지만 검사 하단으로 스크롤하면 다른 2000 명의 플레이어를 표시하기 위해 클릭하라는 버튼이 있습니다.

버튼 클릭 검사가 필요한 다른 2000 개 노드를 제외한 모든 플레이어 링크를 스크랩 할 수 있습니다. 나는 사람들이 비슷한 문제를 가지고있는 온라인에서 아무것도 찾지 못했으며 아마도 내가 찾지 못한 것일 수도 있습니다.

VS Code에서 Python 3.8.1과 함께 Google Chrome 브라우저를 사용하고 있습니다.

누군가이 일을 어떻게할까요? 내 현재 코드는 다음과 같습니다.

from selenium import webdriver
driver = webdriver.Chrome(r'D:\chromedriver_win32\chromedriver')
driver.get(r"https://www.hltv.org/stats/players")
a_elems = driver.find_elements_by_class_name("context-button")
for elem in a_elems:
    print(elem.get_attribute("href"))

감사

  • 답변 # 1

    a_elems = driver.find_elements_by_css_selector("a[href*='players']")
    for elem in a_elems:
      print(elem.get_attribute("href"))
    
    

    여기에서 링크에 "플레이어"가 포함 된 모든 링크를 가져 왔습니다.

관련 자료

  • 이전 c++ - 함수 반환에 대해 "이름없는 개체 방지"경고를 표시하지 않습니다
  • 다음 C # 변수 유형