python - 如何使用 id 和名称查找隐藏的输入值 - Python,bs4
问题描述
早上好,亲爱的 SO 社区。最近在尝试解析 HTML 时遇到了一个小问题。我总是使用 bs4 模块,直到现在这一直很好。抓取时我主要需要隐藏输入,如果按名称搜索它们,我可以很容易地找到值。但是现在我发现了一个页面,其中输入也有一个 id,如下所示:
<input type="hidden" value="985207" name="order[ship_address_attributes]
[id]" id="order_ship_address_attributes_id">
如果其余的已知,我想找到该值。
我试着把 id 部分放在一边,只用名字搜索它,就像我习惯的那样,但这并不顺利,我也没有找到价值。
我的代码:
soup=bs(r.text, 'lxml')
vle=soup.find('input',{'name':'ship_address_attributes'})['value']
我希望找到一种方法来获得价值,以类似于我尝试的方式。有没有一种方法可以像名称一样添加 id?我会很高兴得到任何帮助。非常感谢,并祝整个社区节日快乐。
解决方案
为什么不选择它id
?
vle = soup.find('input',{'id':'order_ship_address_attributes_id'})['value']
如果该name
值没有空格或换行符,则选择它
vle = soup.find('input', {'name':'order[ship_address_attributes][id]'})['value']
这将选择input
并具有type=hidden
属性name
id
hiddenInputs = soup.select('input[type=hidden]')
for input in hiddenInputs:
if input.get('name') and input.get('id'):
print(input['value'])
推荐阅读
- python - 从 Pandas 数据框中的行填充字典
- python - 将列转换为行以创建事件日志数据集
- ruby-on-rails - 如何使用 Rails 重定向除一个以外的所有 URL
- python - scipy.stats.rv_continuous.fit - 优化器参数
- shell - 当命令脚本失败时,如何使我当前正在运行的 Autosys 作业变为 FA [失败]
- vuex - 我应该在 Vuex 存储操作中使用 async/await 吗?
- flutter - Flutter 中的 CustomPainter 在另一个动画期间在每一帧上重绘
- r - 在R中的数据框中绘制组的平均值
- javascript - 将 d3 curvestep 用于层次结构
- sql-server - 创建一个只能访问数据库并可以在其中创建其他用户的用户(Microsoft SQL Server)