Получение всех URL-адресов от соответствующих div - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь получить URL-адрес данных от каждого div. Я использовал тег class для другой страницы, но у этих элементов нет класса player в div. Как бы я поцарапать такой стол?

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

browser = webdriver.Chrome("/ProgramData/chocolatey/bin/chromedriver.exe")

browser.get("https://rotogrinders.com/game-stats?site=fanduel&sport=nba")
# Wait 20 seconds for page to load
timeout = 20
try:
    WebDriverWait(browser, timeout).until(
        EC.visibility_of_element_located((By.CLASS_NAME, 'player-popup')))
except TimeoutException:
    print("Timed out waiting for page to load")
    browser.quit()

# find_elements_by_xpath returns an array of selenium objects.

players_info = []

players = browser.find_elements_by_tag_name('a.player-popup')

for player in players:
    link = player.find_element_by_class_name('player-popup')
    players_info.append(player.get_attribute('href'))

players_name = [element.split("/", maxsplit=4)[-1] for element in players_info]
print(players_name)
browser.quit()

[![enter image description here][1]][1]


  [1]: https://i.stack.imgur.com/kN6sN.png

1 Ответ

0 голосов
/ 01 ноября 2019
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException

browser = webdriver.Chrome("/ProgramData/chocolatey/bin/chromedriver.exe")

browser.get("https://rotogrinders.com/game-stats?site=fanduel&sport=nba")
# Wait 20 seconds for page to load
timeout = 20
try:
    WebDriverWait(browser, timeout).until(
        EC.visibility_of_element_located((By.CLASS_NAME, 'player-popup')))
except TimeoutException:
    print("Timed out waiting for page to load")
    browser.quit()
browser.execute_script("window.scrollTo(0, document.body.scrollHeight);")
button = browser.find_element_by_xpath(
    '//*[@id="game-stats-table"]/div[2]/a[11]')
button.click()

# find_elements_by_xpath returns an array of selenium objects.

players_info = []

players = browser.find_elements_by_tag_name('a.player-popup')

for player in players:
    players_info.append(player.get_attribute('href'))

players_name = [element.split("/", maxsplit=4)[-1] for element in players_info]
browser.quit()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...