当前位置: 首页 > 面试题库 >

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

柴飞星
2023-03-14
问题内容

这里,

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

from lxml import etree
import urllib

web = urllib.request.urlopen("http://www.ffiec.gov/census/report.aspx?year=2011&state=01&report=demographic&msa=11500")
s = web.read()

html = etree.HTML(s)

## Get all 'tr'
tr_nodes = html.xpath('//table[@id="Report1_dgReportDemographic"]/tr')

## 'th' is inside first 'tr'
header = [i[0].text for i in tr_nodes[0].xpath("th")]

## Get text from rest all 'tr'
td_content = [[td.text for td in tr.xpath('td')] for tr in tr_nodes[1:]]


 类似资料:
  • 问题内容: 例如: 如何提取“ http://www.google.com”? (每个链接的格式都相同,即“ http://”) 问题答案: 可能有几种方法可以做到这一点,但最干净的方法是使用正则表达式 如果可以有多个链接,则可以使用类似于以下内容的链接

  • 我正试图浏览一个网站。我尝试过使用两种方法,但都没有提供完整的网站源代码,我正在寻找。我正试图从下面提供的网站URL中获取新闻标题。 URL:"https://www.todayonline.com/" 这是我尝试过但失败的两种方法。 请帮忙。我试着抓取其他新闻网站,这要容易得多。谢谢你。

  • 我正在构建一个移动Web应用程序,它从我构建的Symfony2应用程序中获取信息。用户必须提交一个表单才能查看信息,但是当我通过AJAX提交表单时,处理它的控制器看不到正在提交的表单。 移动应用程序是用Cordova构建的,因此表单来源于静态HTML表单。一旦通过AJAX提交,AJAX将返回所需的数据。然而,表单提交很好,这让AJAX发挥了神奇的作用,但是Symfony2没有看到表单被提交。我对

  • 问题内容: 因此,我正在开发一个应用程序来存储所有用户喜欢的应用程序的快捷方式,就像集线器一样。我可以支持实际文件,并且可以使用快捷方式解析器。我认为应用程序也支持Internet快捷键也将非常不错。这就是我在做什么: 假设我要获取Google的图标()。 首先,我摆脱掉多余的页面(例如将成为)。 然后,我用来获取图像。 问题是,当我调用此方法时,永远不会返回Image: 现在我有两个问题: Ja

  • 这是我正在努力浏览的网站:https://clinicaltrials.gov/ct2/results?term=wound照顾 具体来说,我想获得每个研究标题的链接,转到该链接,然后浏览特定页面的“资格标准”部分。 这是我一直在使用的代码: 现在:显然,我可以使用BeautifulSoup来解析该页面,但这不是我的问题。页面没有抓取该url上表中的任何数据。我不太清楚为什么。。。我认为这与请求有

  • 我正在学习NLTk,我需要加载一个大文件,我不想把它保存在我的桌面上。我怎么能用网站上托管的python读取文件? 我在这里尝试了这段代码,但它不起作用,我假设openwith是它的rson,但我需要使用openwith,因为在这种情况下我需要将它保存为file-myfile。 这就是错误: 如何在脚本中使用该文件而不下载整个文件? 我更改了代码以处理请求 但是现在当我运行这个我得到这个错误: