首页 > 解决方案 > 使用python提取JavaScript表

问题描述

我是 python 的初学者,我想弄清楚如何从这个网站提取数据:https ://www.tokendata.io/ 。通常我使用漂亮的汤处理 HTML 表格,但这似乎需要使用硒。有谁能帮助我。我迫切需要我论文的数据。

标签: pythonseleniumweb-scrapingbeautifulsoup

解决方案


您的意思是要加载页面并将在 div.dataTables_scrollBody 的 HTML 表中找到的数据提取到 python 中的对象中,例如元组

tabletuple = [('EOS','Active','$3,272,911,705.00','Jun 2018','','','',''),('Telegrame Open Network',"Completed",'1,700,000,000.00   ','Apr 2018','','',''),...etc

您可以通过 css 选择器“div.dataTables_scrollBody”获取表格来使用 selenium

下面是一些带有 webdriver 的示例代码,用于通过 selenium webdriver 获取行文本的索引 1 行和索引 1 列。您可以将其与上面的代码一起使用,以从 HTML 表中创建数据元组

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--allow-file-access-from-files")
chrome_options.add_argument("--allow-running-insecure-content")
chrome_driver_path = os.path.join(driver_path, "chromedriver.exe")
print("\n ChromeDriverPath: " + chrome_driver_path)
driver = webdriver.Chrome(executable_path=chrome_driver_path, 
chrome_options=chrome_options)
table_element = driver.find_element(by=By.CSS_SELECTOR,    value='div.dataTables_scrollBody')

rows = table_element.find_elements_by_xpath("./tr")
row = 1
row_elements = rows[row].find_elements_by_xpath("./td")
column = 1
text_element = row_elements[column].get_attribute("innerText")

推荐阅读