Я не могу очистить таблицу данных, используя селен и красивый суп - PullRequest
0 голосов
/ 29 сентября 2019

Я зашел так далеко, как только могу, но, похоже, я не могу собрать данные из таблицы.Я искал ответы через stackoverflow, но, похоже, ничего не работает.По сути, таблица пуста, или я просто не могу найти элементы в таблице.Я работаю с таблицей с ежедневной фэнтезийной веб-страницы Yahoo.

ПРИМЕЧАНИЕ. Текущий используемый веб-адрес, вероятно, будет меняться неделя на неделю, поэтому в будущем он может быть недействительным.

Текущий код:

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait

driver = webdriver.Chrome()
driver.get("https://sports.yahoo.com/dailyfantasy/contest/5416455/setlineup")

response = wait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME,"data-tst-player-id")))
driver.quit

soup = BeautifulSoup(response, 'lxml')
with open('test.txt','w', encoding='utf-8') as f_out:
    f_out.write(soup.prettify())

1 Ответ

1 голос
/ 29 сентября 2019

Нет элемента с именем класса или идентификатором, который вы указываете в строке

response = wait(driver, 10).until(EC.presence_of_element_located((By.TAG_NAME,"data-tst-player-id")))

, однако есть некоторые теги с атрибутом data-tst, так что вы можете использовать эточтобы убедиться, что ваша страница загружена, и в этой строке

driver.quit

вы ничего не делаете, вам нужно вызвать функцию driver.quit ().рабочий код:

from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait

driver = webdriver.Chrome()
driver.get("https://sports.yahoo.com/dailyfantasy/contest/5416455/setlineup")
wait(driver, 1).until(EC.presence_of_element_located((By.CSS_SELECTOR,"[data-tst]")))
response=driver.page_source
driver.quit()

soup = BeautifulSoup(response, 'lxml')
with open('test.txt','w', encoding='utf-8') as f_out:
    f_out.write(soup.prettify())
...