在这里
http://www.ffiec.gov/census/report.aspx?year=2011&state=01&report=demographic&msa=11500
有一张桌子。我的目标是提取表并将其保存到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()
我从这里输了。有谁能帮忙吗?谢谢!
所以本质上你需要解析出
html
文件来从中获取元素。您可以使用BeautifulSoup或lxml执行此任务。您已经有了使用
BeautifulSoup
的解决方案。我将使用lxml
发布解决方案:我建议美化组,因为它有最多的功能。我修改了一个我在网上找到的可以从网页中提取所有表的表解析器,只要没有嵌套表。有些代码是针对我试图解决的问题而编写的,但是根据您的使用情况修改应该很容易。这是pastbin链接。
http://pastebin.com/RPNbtX8Q
您可以使用它如下:
上面的代码是一个大纲,但是如果您使用来自pastbin链接的表解析器,您应该能够到达您想要去的地方。
Pandas可以在开箱即用的情况下做到这一点,省得您自己解析html。^{} 从html中提取所有表,并将它们放入dataframes列表中。^{} 可用于将每个数据帧转换为csv文件。对于示例中的web页面,相关表是最后一个,这就是我在下面的代码中使用
df_list[-1]
的原因。如果你愿意的话,一行就足够简单了:
相关问题 更多 >
编程相关推荐