在python(使用bs4)中跨多个非统一表返回数据迭代一次吗?

亚当

我正在尝试遍历一系列表,这些表中的数据并不是在表中统一输入的。我正在使用python&bs4。

这些表中包含立法信息-将它们发送给州长(或不发送),签名(或不给签名),否决(或不给与否)。

我只想返回以下内容:(交货/签字/否决和日期)。或者,(未送达/未签名/未否决且没有日期)。问题是,当我遍历列表时,它遍历每一行并返回每一行的结果。我希望当两种情况都满足时代码停止运行,并且只返回一对结果。见下文:

        tablebody=soup.select_one(".table.c-bill--actions-table > tbody")
        for item in tablebody.select("td"):
            
            if "delivered to governor" in item.text:
                transfer_list.append("delivered to governor")
                transfer_list.append(item.find_previous("td").text)
            else:
                transfer_list.append("not delivered")
                transfer_list.append("no date")
                
        tablebody=soup.select_one(".table.c-bill--actions-table > tbody")
        for item in tablebody.select("td"):
            
            if "signed" in item.text:
                transfer_list.append("signed")
                transfer_list.append(item.find_previous("td").text)
                
            else:
                transfer_list.append("not signed")
                transfer_list.append("no date")
                             
        
        tablebody=soup.select_one(".table.c-bill--actions-table > tbody")
        for item in tablebody.select("td"):
            
            if "vetoed" in item.text:
                transfer_list.append("vetoed")
                transfer_list.append(item.find_previous("td").text)
                
            else:
                transfer_list.append("not vetoed")
                transfer_list.append("no date")

我目前output看起来像这样:

 ['senate        Bill S3984',
  'Creates the crime of related use of a lethal or explosive device',
  'Liz Krueger',
  '(D, WF) 28th\xa0Senate District',
  'No votes for this bill.',
  'A2645',
  'not delivered',
  'no date',
  'not delivered',
  'no date',
  'not delivered',
  'no date',
  'not delivered',
  'no date',
  'not signed',
  'no date',
  'not signed',
  'no date',
  'not signed',
  'no date',
  'not signed',
  'no date',
  'not vetoed',
  'no date',
  'not vetoed',
  'no date',
  'not vetoed',
  'no date',
  'not vetoed',
  'no date'],

有什么想法吗?我只需要(交付,签名,否决)和随附的(日期/无日期)进行一次迭代。

chitown88

这是因为它正在检查每个<td>项目。有几种方法可以做到。

只需将所有项目放入列表中,然后查看该项目是否存在。您可以执行的另一种方法是进行其他逻辑检查:

   tablebody=soup.select_one(".table.c-bill--actions-table > tbody")
   
   check_list = [item.text.strip() for item in tablebody.select("td")]

    if "delivered to governor" in check_list:
        transfer_list.append("delivered to governor")
        i = check_list.index("delivered to governor")
        transfer_list.append(check_list[i+1])
        
    else:
        transfer_list.append("not delivered")
        transfer_list.append("no date")
        
    if "signed" in check_list:
        transfer_list.append("signed")
        i = check_list.index("signed")
        transfer_list.append(check_list[i+1])
        
    else:
        transfer_list.append("not signed")
        transfer_list.append("no date")
        
    if "vetoed" in check_list:
        transfer_list.append("vetoed")
        i = check_list.index("vetoed")
        transfer_list.append(check_list[i+1])
        
    else:
        transfer_list.append("not vetoed")
        transfer_list.append("no date")

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用python bs4获取Wikipedia表中的第一列值?

来自分类Dev

GLSL:动态统一表达式仅计算一次吗?

来自分类Dev

使用bs4在同一页面的多个表中抓取特定的html表

来自分类Dev

一次从多个表获取数据

来自分类Dev

如何使用Java在Hibernate中一次将数据插入到多个表中

来自分类Dev

只能使用Python和BS4擦除表的一部分

来自分类Dev

Pandas数据框中的非统一日期列

来自分类Dev

迭代:一次标记多个列

来自分类Dev

一次迭代多个标签的更改

来自分类Dev

使用2进行一次选择查询,查询在同一表上进行

来自分类Dev

使用同一表中的数据更新表

来自分类Dev

如何一次将数据插入多个表

来自分类Dev

从BS4中的表行中提取多个数据

来自分类Dev

我可以使用一个表中的数据来更新另一表吗?

来自分类Dev

LBP中的统一和非统一模式背后的直觉是什么?

来自分类Dev

使用新的构建系统一次构建多个“配置”

来自分类Dev

Python BS4抓取表在<td>标签中具有多个值

来自分类Dev

使用同一表中的数据更新行

来自分类Dev

使用-在同一表中混合来自mysql的数据

来自分类Dev

使用同一表中的数据更新行

来自分类Dev

使用-在同一表中混合来自mysql的数据

来自分类Dev

在Python 2.7中,importlib可以一次导入多个模块吗?

来自分类Dev

在Python 2.7中,importlib可以一次导入多个模块吗?

来自分类Dev

Python - BS4 - 从一个类中提取多个值

来自分类Dev

如何在jQuery中读取JSON数据(数据集包含多个表)以一次绑定多个下拉列表

来自分类Dev

通过bs4将html表数据导入python

来自分类Dev

硒自动化可以与BS4一起使用吗?

来自分类Dev

在django中使用model.objects.all()。iterator()之后,数据库会一次或一次一行地拉动整个表吗?

来自分类Dev

如何创建多个数据集,每个数据集在for循环中迭代一次?

Related 相关文章

  1. 1

    如何使用python bs4获取Wikipedia表中的第一列值?

  2. 2

    GLSL:动态统一表达式仅计算一次吗?

  3. 3

    使用bs4在同一页面的多个表中抓取特定的html表

  4. 4

    一次从多个表获取数据

  5. 5

    如何使用Java在Hibernate中一次将数据插入到多个表中

  6. 6

    只能使用Python和BS4擦除表的一部分

  7. 7

    Pandas数据框中的非统一日期列

  8. 8

    迭代:一次标记多个列

  9. 9

    一次迭代多个标签的更改

  10. 10

    使用2进行一次选择查询,查询在同一表上进行

  11. 11

    使用同一表中的数据更新表

  12. 12

    如何一次将数据插入多个表

  13. 13

    从BS4中的表行中提取多个数据

  14. 14

    我可以使用一个表中的数据来更新另一表吗?

  15. 15

    LBP中的统一和非统一模式背后的直觉是什么?

  16. 16

    使用新的构建系统一次构建多个“配置”

  17. 17

    Python BS4抓取表在<td>标签中具有多个值

  18. 18

    使用同一表中的数据更新行

  19. 19

    使用-在同一表中混合来自mysql的数据

  20. 20

    使用同一表中的数据更新行

  21. 21

    使用-在同一表中混合来自mysql的数据

  22. 22

    在Python 2.7中,importlib可以一次导入多个模块吗?

  23. 23

    在Python 2.7中,importlib可以一次导入多个模块吗?

  24. 24

    Python - BS4 - 从一个类中提取多个值

  25. 25

    如何在jQuery中读取JSON数据(数据集包含多个表)以一次绑定多个下拉列表

  26. 26

    通过bs4将html表数据导入python

  27. 27

    硒自动化可以与BS4一起使用吗?

  28. 28

    在django中使用model.objects.all()。iterator()之后,数据库会一次或一次一行地拉动整个表吗?

  29. 29

    如何创建多个数据集,每个数据集在for循环中迭代一次?

热门标签

归档