从read_html起源写入一个csv文件

时间:2019-01-04 02:48:00

标签: python beautifulsoup

我在将html表(表2)导出到csv文件时遇到麻烦。我尝试在对象pd.read_html上使用to_csv,但无法正常工作

import requests
from bs4 import BeautifulSoup
from selenium import webdriver
import html.parser
import pandas as pd
import time

driver=webdriver.Chrome("C:/Users/Juan Diego Bernate V/Documents/Python/Practica/APIs/chromedriver.exe")

driver.get('https://www.ambito.com/contenidos/dolar-futuro.html')
res=driver.execute_script("return document.documentElement.outerHTML")
html=driver.page_source
soup= BeautifulSoup(html, 'lxml')
tabla=soup.find_all('table')
tabla2=pd.read_html(html)

dia = time.strftime("%Y%m%d")
ruta='C:/Users/Juan Diego Bernate V/'
nombre= ruta+ 'dolar_fut_rofex_2'+dia+'.csv'

tabla2.to_csv(nombre)
print (tabla2)
print (tabla)

这是错误消息,我写了所有使用的代码,之前,我认为这是不相关的。

在ws://127.0.0.1:54234 / devtools / browser / 6a47dd26-ab5d-4318-b858-226180882e0f上侦听的DevTools 追溯(最近一次通话):   在第34行的文件“ WSDinamicoRofex.py”中     tabla2.to_csv(nombre) AttributeError:“列表”对象没有属性“ to_csv” 希望你能帮助我

1 个答案:

答案 0 :(得分:-2)

我不太喜欢您的示例,但是请尝试astropy。这样的事情应该做:

from astropy.io import ascii

# your code here

tbl = ascii.read(html_table, format='html')

这会产生一个astropy Table,它非常易于操作,然后您可以使用保存到另一个文件

ascii.write(tbl, 'table.csv', format='csv')

或等效地

tbl.write('table.csv', format='ascii.csv')