在这里,
http://www.ffiec.gov/census/report.aspx?year=2011&state=01&report=demographic&msa=11500
有一张 table 。我的目标是提取表格并将其保存到 csv 文件中。我写了一段代码:
import urllib
import os
web = urllib.urlopen("http://www.ffiec.gov/census/report.aspx?year=2011&state=01&report=demographic&msa=11500")
s = web.read()
web.close()
ff = open(r"D:\ex\python_ex\urllib\output.txt", "w")
ff.write(s)
ff.close()
我从这里输了。任何人都可以提供帮助吗?谢谢!
最佳答案
Pandas可以开箱即用,使您不必自己解析 html。 to_html()
从您的 html 中提取所有表格并将它们放入 dataframes 的列表中. to_csv()
可用于将每个数据帧转换为 csv 文件。对于您示例中的网页,相关表格是最后一张,这就是我使用 df_list[-1]
的原因在下面的代码中。
import requests
import pandas as pd
url = 'http://www.ffiec.gov/census/report.aspx?year=2011&state=01&report=demographic&msa=11500'
html = requests.get(url).content
df_list = pd.read_html(html)
df = df_list[-1]
print(df)
df.to_csv('my data.csv')
如果您愿意,只需一行即可完成:
pd.read_html(requests.get(<url>).content)[-1].to_csv(<csv file>)
P.S. 只要确保您有 lxml
, html5lib
, 和 BeautifulSoup4
预先安装的软件包。
关于python - 如何使用 Python 从网站中提取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10556048/