首页 > 解决方案 > 如何将表格从网页中抓取到数据框中

问题描述

我正在尝试用一页将表格刮入数据框中。

import pandas as pd
import requests
from bs4 import BeautifulSoup

res = requests.get("https://www.viewbase.com/funding")
soup = BeautifulSoup(res.content,'lxml')

table1 = soup.find_all('tr')

标签: pythondataframeweb-scraping

解决方案


该表是通过 JS 脚本填充的,因此 BS4 不会看到它。但是,您可以seleniumheadless模式下使用并获取您需要的内容。

以下是如何执行此操作:

import time

import pandas as pd

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.headless = True
driver = webdriver.Chrome(options=options)

driver.get("https://www.viewbase.com/funding")
time.sleep(5)
headers = driver.find_elements_by_xpath('//*[@class="tablesorter-headerRow"][2]/th/div')
table = driver.find_element_by_xpath('//*[@id="inverse_swap"]')

columns = [i.text for i in headers]
data = [r.split() for r in table.text.split('\n')]

df = pd.DataFrame(data, columns=columns)
df.to_csv("data.csv", index=False)

输出: 在此处输入图像描述


推荐阅读