python - 根据 Beautiful Soup/Python 中的条件返回表信息
问题描述
我正在尝试抓取此页面:https ://www.nysenate.gov/legislation/bills/2019/s8450
我只想从表中提取信息(单击“查看操作”时出现的信息),如果它包含以下字符串:"Delivered To Governor"
.
我可以遍历表格,但是尝试剥离所有额外的标记文本时遇到了麻烦。
url = "https://www.nysenate.gov/legislation/bills/2019/s8450"
raw_html = requests.get(url).content
soup = BeautifulSoup(raw_html, "html.parser")
bill_life_cycle_table = soup.find("tbody")
bill_life_cycle_table
解决方案
您可以提供 if 条件来检查单元格中是否存在字符串并查找先前的单元格值。使用 CSS 选择器select()
from bs4 import BeautifulSoup
import requests
url = "https://www.nysenate.gov/legislation/bills/2019/s8450"
raw_html = requests.get(url).content
soup = BeautifulSoup(raw_html, "html.parser")
tablebody=soup.select_one(".table.c-bill--actions-table > tbody")
for item in tablebody.select("td"):
if "delivered to governor" in item.text:
print(item.find_previous("td").text)
控制台输出:
Dec 11, 2020
推荐阅读
- javascript - 刷新页面时如何使倒计时不重置
- android - 解读 Zeplin 特性以创建 Android 环形 Drawable
- javascript - 我使用节点 js multer 遇到文件上传问题
- flutter - 根据用户角色显示/隐藏小部件
- java - jdk和gradle问题
- database-migration - 如何有条件地运行 Knex 迁移
- laravel - 无法在 laravel 7.5.2 上安装 vue ui
- javascript - ReactJS:当其中的文本为某个值时如何使按钮背景颜色发生变化
- inno-setup - 如何在 Inno Setup 中更改窗口标题中的名称?
- python - 如何使用 python 子进程模块执行多个 shell 命令?