python BeautifulSoup解析表

2024-02-07

我正在学习Pythonrequests和美丽汤。作为练习,我选择编写一个快速的纽约停车罚单解析器。我能够得到一个相当难看的 html 响应。我需要抓住lineItemsTable并解析所有票据。

您可以通过以下方式重现该页面:https://paydirect.link2gov.com/NYCParking-Plate/ItemSearch并输入一个NY plate T630134C

soup = BeautifulSoup(plateRequest.text)
#print(soup.prettify())
#print soup.find_all('tr')

table = soup.find("table", { "class" : "lineItemsTable" })
for row in table.findAll("tr"):
    cells = row.findAll("td")
    print cells

有人可以帮我吗?简单查找全部tr没有带我去任何地方。


干得好:

data = []
table = soup.find('table', attrs={'class':'lineItemsTable'})
table_body = table.find('tbody')

rows = table_body.find_all('tr')
for row in rows:
    cols = row.find_all('td')
    cols = [ele.text.strip() for ele in cols]
    data.append([ele for ele in cols if ele]) # Get rid of empty values

这给你:

[ [u'1359711259', u'SRF', u'08/05/2013', u'5310 4 AVE', u'K', u'19', u'125.00', u'$'], 
  [u'7086775850', u'PAS', u'12/14/2013', u'3908 6th Ave', u'K', u'40', u'125.00', u'$'], 
  [u'7355010165', u'OMT', u'12/14/2013', u'3908 6th Ave', u'K', u'40', u'145.00', u'$'], 
  [u'4002488755', u'OMT', u'02/12/2014', u'NB 1ST AVE @ E 23RD ST', u'5', u'115.00', u'$'], 
  [u'7913806837', u'OMT', u'03/03/2014', u'5015 4th Ave', u'K', u'46', u'115.00', u'$'], 
  [u'5080015366', u'OMT', u'03/10/2014', u'EB 65TH ST @ 16TH AV E', u'7', u'50.00', u'$'], 
  [u'7208770670', u'OMT', u'04/08/2014', u'333 15th St', u'K', u'70', u'65.00', u'$'], 
  [u'$0.00\n\n\nPayment Amount:']
]

有几点需要注意:

  • 上面输出中的最后一行,付款金额不是一部分 桌子的形状,但这就是桌子的布局方式。你可以过滤一下 通过检查列表的长度是否小于 7 来输出。
  • 每行的最后一列必须单独处理,因为它是一个输入文本框。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python BeautifulSoup解析表 的相关文章

随机推荐

  • 如何强制/允许用户下载多个文件? (客户端)

    输入是可变数量的 URL 远程 所有链接图像资源 希望允许用户允许批量下载所有这些 URL 由于我们讨论的是 1000 2000 个图像资源 要求用户为每个 URL 单击 另存为 是不可行的 我最初的尝试是将所有图像下载到一个 blob 中
  • 删除 SwiftUI 中后退按钮的文本

    简而言之 我想要do this https stackoverflow com questions 33025239 remove text from back button keeping the icon 但是使用 SwiftUI Ho
  • 增强子图和捆绑属性

    我正在使用捆绑属性和 adjacency list 并且想使用子图类 struct Vertex int index int seed struct Edge bool visted double weight typedef adjace
  • 从应用程序打开系统设置的特定部分

    我的应用程序有一个快捷方式 可以打开系统设置的存储部分 效果很好 但是如果设置应用程序已经在运行 并且最后离开了显示设置 则您不会被定向到存储设置 但按快捷键时显示设置 在尝试启动存储之前 有没有办法强制打开存储设置 或者关闭 如果未关闭
  • 在真实Apple Watch上调试:应用程序验证失败

    今天我尝试在真正的 Apple Watch 上调试我的 WatchKit 应用程序 在 Xcode 中点击 调试 按钮后 iPhone 主应用程序已正确安装 但 Apple Watch 只显示消息安装xxx失败 错误 应用程序验证失败 Wa
  • 为什么CPU负载的变化不会超过百分之几?

    我正在运行这个命令 grep cpu proc stat awk usage 2 4 100 2 4 5 END print usage 但它只输出 0 99xxxx 之类的东西 如果我进行 apt get 升级或任何过程 我想它会超过 1
  • 在网页中嵌入视频后如何删除 YouTube 品牌?

    我在用 这将删除右侧底部的 Youtube 徽标 并且还删除了悬停时出现的 标题栏 但在这个问题中 当我将鼠标悬停在视频上时 然后在右侧底部 Youtube 缩略图后面 文本出现 当我移开鼠标时 它就会消失 当我使用 autohide 1
  • 恢复在 HBase 中的工作原理

    我想实际观察 HBase 中的恢复是如何工作的 我使用了以下代码片段 Put p new Put Bytes toBytes name10 p setWriteAheadLog true p add Bytes toBytes cf Byt
  • ASP.NET Web API 2:ExceptionLogger 和异常处理程序

    我正在尝试在 Web api 中实现全局异常日志记录 并向用户发送一条带有该错误 ID 的友好消息 这样他就可以带着错误 ID 回到我们这里 以便我们可以修复它 我正在实施两者 System Web Http ExceptionHandli
  • Kafka 连接可以使用批量模式的自定义查询吗?

    我正在尝试发送 7 天前的每行记录 这是我正在研究的配置 但它 即使查询在数据库服务器上生成记录也不起作用 connector class io confluent connect jdbc JdbcSourceConnector task
  • 索引缓冲区对象和 UV 坐标效果不佳

    这会生成 25 个主要顶点 For x As Single 1 To 1 Step 0 5F For y As Single 1 To 1 Step 0 5F Dim pt1 As New Vector3 x y 0 tFloats Add
  • 使用 Vue 3 Composition API 创建全局商店

    我正在尝试仅使用 Vue 3 Composition API 创建一个全局商店 到目前为止 我一直在做实验 并且阅读了很多如何使用 Composition API 但知道我不知道如何使用provide和inject 我所知道的是provid
  • Java:获取字符串中最后一个单词的最简单方法

    在Java中获取字符串的最后一个单词的最简单方法是什么 您可以假设没有标点符号 只有字母字符和空格 String test This is a sentence String lastWord test substring test las
  • 如何创建像 Delphi 应用程序一样的独立(没有 DLL 文件依赖项)C++Builder 控制台应用程序?

    当我创建 Delphi 控制台应用程序时 我可以部署生成的 EXE 文件 而不必担心外部 DLL 文件 但如果我创建非常简单C Builder http en wikipedia org wiki C Builder 2007 版 控制台应
  • VirtualLock 真的如其所说吗?

    出于安全目的 我目前正在研究如何避免在程序执行过程中交换某些数据块 据我搜索 我在Linux上找到了mlock 这似乎正是我需要的工具 在Windows上找到了VirtualLock 对于后者 我发现了不同的看法 这文档 https msd
  • 什么是调用方法和被调用方法?

    调用方法和被调用方法是否相同 我想知道的是 调用方法 是指调用另一个方法 在大多数情况下是主方法 的方法 还是主方法本身 调用方法是包含实际调用的方法 被调用的方法是被调用的方法 他们是不同的 例如 Calling method void
  • 查找所有参与者都可以参加的会议时段的算法

    在采访博客中遇到这个问题 给出表格中的空闲时间安排 a b i e from a to b of n人们 打印所有时间间隔 其中所有n参与者有空 它就像一个日历应用程序 建议可能的会议时间 Example Person1 4 16 18 2
  • Google Cloud Storage 存储桶抛出错误“要计费的项目与已关闭的计费帐户关联。”

    我已经检查了我的项目 它有一个活跃的计费帐户 https i stack imgur com NKKrd png 我正在使用节点js var gcloud require gcloud var gcs gcloud storage proj
  • 有没有一种快速的方法来获得鼠标下的控制?

    我需要在另一个控件的事件中找到鼠标下的控件 我可以从GetTopLevel并使用向下迭代GetChildAtPoint 但是有没有更快的方法呢 这段代码没有多大意义 但它确实避免了遍历 Controls 集合 System Runtime
  • python BeautifulSoup解析表

    我正在学习Pythonrequests和美丽汤 作为练习 我选择编写一个快速的纽约停车罚单解析器 我能够得到一个相当难看的 html 响应 我需要抓住lineItemsTable并解析所有票据 您可以通过以下方式重现该页面 https pa