python - 如何使用 Python 从网站中提取表格

标签 python urllib

在这里,

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/

相关文章:

python - 不使用 PyCurl 的类似 Curl 的客户端证书发送 : how?

python - 从 Bittrex 解析 JSON

Python:单击带有 urllib 或 urllib2 的按钮

python - appengine urllib 是否使用 SSLv3?传输安全协议(protocol)?

python - 仅添加到是否满足条件

python - Pandas :传递给聚合函数的对象的数据类型是什么

python - 将简单的 Python 模块移植到 Cython

python - CPLEX 中的背包求解总结

python - 如何在 python 中导入 OpenSSL

python - OpenCV在Python中将RGB数组转换为YUV422