我无法使用Selenium和美丽的汤抓取表格数据



我已经尽我所能,但我似乎无法从表中抓取数据。 我已经通过堆栈溢出搜索了答案,但似乎没有任何效果。 基本上表格是空的,或者我根本找不到表格中的元素。我正在使用雅虎每日幻想网页上的表格。

注意:当前使用的网址可能会每周更改,因此将来可能不是有效的地址。

当前代码:

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())

该行中没有具有类名或 id 的元素

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())

最新更新