【问题标题】:web scraping with selenium on a dynamic table在动态表上使用硒进行网页抓取
【发布时间】:2020-02-15 17:15:30
【问题描述】:

我正在尝试从动态网站上抓取表格(我相信它每 10 秒更新一次信息)并将其加载到熊猫数据框中,但我似乎无法通过获取第一列的第一步。有人可以建议我做错了什么吗?谢谢。

# import libraries
import urllib.request
from bs4 import BeautifulSoup
from selenium import webdriver
import time
import pandas as pd

urlpage = 'https://new.cryptoxscanner.com/binance/live'

driver = webdriver.Chrome(executable_path=r"C:\Users\xxxxx\Desktop\chrome\chromedriver.exe")

driver.get(urlpage)
time.sleep(10)
ticker = driver.find_element_by_xpath('//*[@id="scroll-source-1"]/table/tbody/tr[2]')

【问题讨论】:

    标签: python selenium web-scraping


    【解决方案1】:

    首先,您需要等到找到数据后,使用.visibility_of_all_elements_located。您可以使用此定位器等待:

    //table[contains(@class, "table-sm")]//a
    

    定位完所有数据后,就可以提取表格数据了。试试下面的代码:

    driver.get('https://new.cryptoxscanner.com/binance/live')
    
    #UPDATED HERE
    option = Select(WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, '//select[contains(., "All")]'))))
    option.select_by_visible_text('All')
    
    WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.XPATH, '//table[contains(@class, "table-sm")]//a')))
    data = driver.find_element_by_class_name('table-responsive')
    print(data.text)
    

    导入后:

    #UPDATED HERE
    from selenium.webdriver.support.ui import Select
    from selenium.webdriver.common.by import By
    
    from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    

    【讨论】:

    • 非常感谢! selenium.webdriver.common.by import By 中缺少导入,但是在我添加之后,它工作得很好!如果我需要在提取之前将计数从 25 更改为全部,您建议我使用什么?再次感谢您的帮助!
    • @python_rok 我忘记导入 By :) 。现在请查看更新的代码,我只是在加载所有数据之前添加option。希望这会有所帮助。不要忘记导入Select
    • 不是打印(data.text),有没有一种方法可以将数据转换为熊猫数据框?我想在你帮助我开始之后我可以弄清楚如何做到这一点,但我一直在研究这个问题一段时间,但没有任何成功。你能提供一些建议吗?谢谢。
    猜你喜欢
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 2015-02-27
    • 2021-03-09
    • 2023-02-02
    • 2021-11-29
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多