您好,我正在尝试使用pyhton和硒对网页进行网页抓取。我试图从页面获取的信息是比赛信息/计分板。例如当前设置,玩家名称,每个玩家的积分。我不断收到TimeoutException。有人可以告诉我如何在下面检索此信息吗?是指向该页面示例的链接。
https://www.bovada.lv/sports/tennis/itf-men/chile-singles/a-tabilo-i-monzon-201811211325
下面是我的代码
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from bs4 import BeautifulSoup
driver = webdriver.Chrome()
driver.maximize_window()
wait = WebDriverWait(driver, 50)
small_wait = WebDriverWait(driver, 50)
driver.execute_script('window.open("https://www.bovada.lv/sports/tennis/itf-men/chile-singles/a-tabilo-i-monzon-201811211325","_self")')
#//*[@id="tracker__header"]
dat = []
try:
dat.append([wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="tracker__header"]/div/div[1]/div/div[2]'))).text])
except TimeoutException:
print('error')
driver.quit()
答案 0 :(得分:3)
您需要切换到iframe以获得价值:
driver.switch_to.frame(driver.find_element_by_css_selector('iframe[id^="iframe-tracker-"]'))
try:
dat.append(wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="tracker__header"]/div/div[1]/div/div[2]'))).text)
except TimeoutException:
print('error')
答案 1 :(得分:0)
您最需要做的是切换到框架。您可以通过检查element并找到iframe部分来做到这一点。右键单击is,然后复制x路径。
iframe = driver.find_element_by_xpath('YOUR IFRAME XPATH)
driver.switch_to.frame(iframe)
现在,希望您可以很好地运行代码。