您好,我正在尝试使用 pyhton 和 selenium 抓取网页。我试图从页面获取的信息是比赛信息/记分板。例如当前设置,球员姓名,每个球员的分数。我不断收到 TimeoutException。有人可以告诉我如何检索此信息,下面是该页面示例的链接。https://www.bovada.lv/sports/tennis/itf-men/chile-singles/a-tabilo-i-monzon-201811211325下面是我的代码from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support import expected_conditions as ECfrom selenium.common.exceptions import TimeoutExceptionfrom bs4 import BeautifulSoupdriver = 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() 以下是我想从网站上获取的信息
2 回答

白猪掌柜的
TA贡献1893条经验 获得超10个赞
您需要切换到 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')

qq_笑_17
TA贡献1818条经验 获得超7个赞
您需要做的很可能是切换到框架。您可以通过检查元素并找到 iframe 部分来做到这一点。右键单击 is 并复制 x 路径。
iframe = driver.find_element_by_xpath('YOUR IFRAME XPATH) driver.switch_to.frame(iframe)
现在你可以很好地运行你的代码了,希望如此。
添加回答
举报
0/150
提交
取消