python selenium webscrape

您好,我正在尝试使用 pyhton 和 selenium 抓取网页。我试图从页面获取的信息是比赛信息/记分板。例如当前设置,球员姓名,每个球员的分数。我不断收到 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() 

以下是我想从网站上获取的信息 

http://img3.mukewang.com/6124bdc300012ab807490086.jpg

万千封印
浏览 189回答 2
2回答

白猪掌柜的

您需要切换到 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

您需要做的很可能是切换到框架。您可以通过检查元素并找到 iframe 部分来做到这一点。右键单击 is 并复制 x 路径。iframe = driver.find_element_by_xpath('YOUR IFRAME XPATH) driver.switch_to.frame(iframe)现在你可以很好地运行你的代码了,希望如此。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python