代码之家  ›  专栏  ›  技术社区  ›  Matthew Borish

如何使用Selenium和XPath或其他替代方法从URL获取包含动态数据的表?

  •  1
  • Matthew Borish  · 技术社区  · 6 年前

    我正在尝试从此站点检索主“网络状态”表数据:

    http://dev.cryptolions.io/mainnet/

    我尝试了许多使用chrome的copy选择器和copy xpath填充的Selenium函数组合,但没有任何运气。这个网站是用硒打开的,但是我不断地得到类似的错误。我这里缺什么?

    在任意数量的数据结构中获取表是可以的。但是一本字典,JSON,或者我可以载入熊猫数据框的东西是理想的。

    NoSuchelementException:消息:没有这样的元素:找不到 元素:“method”:“xpath”,“selector”:“/*[@id=“bpTableSystem”]“
    (会话信息:chrome=67.0.3396.87)(驱动程序信息: Chromedriver=2.40.565498 (ea082db3280dd6843ebfb08a625e3eb905c4f5ab),平台=Windows NT 10.0.17134 x86 U 64)

    我的代码:

    driver = webdriver.Chrome(r'C:\chromedriver_win32\chromedriver.exe') 
    browser = webdriver.Chrome()
    
    browser.get('http://dev.cryptolions.io/mainnet/')
    
    time.sleep(30)
    content = driver.find_element_by_xpath('//*[@id="bpTableSystem"]')
    print content.text
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Andersson    6 年前

    问题是您已经定义了两个chrome实例: browser driver .导航到目标页面时 浏览器 在试图找到 table 具有 司机 .

    只需更换

    browser.get('http://dev.cryptolions.io/mainnet/') 
    

    具有

    driver.get('http://dev.cryptolions.io/mainnet/')