为了账号安全,请及时绑定邮箱和手机立即绑定

python selenium webscrape

python selenium webscrape

万千封印 2021-08-24 17:36:42
您好,我正在尝试使用 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')


查看完整回答
反对 回复 2021-08-24
?
qq_笑_17

TA贡献1818条经验 获得超7个赞

您需要做的很可能是切换到框架。您可以通过检查元素并找到 iframe 部分来做到这一点。右键单击 is 并复制 x 路径。

iframe = driver.find_element_by_xpath('YOUR IFRAME XPATH)
driver.switch_to.frame(iframe)

现在你可以很好地运行你的代码了,希望如此。


查看完整回答
反对 回复 2021-08-24
  • 2 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号