我正在工作刮一个工作的网站,我不能得到美丽的汤刮特定的文本之间不寻常的标签。
我只搜索了一个span标记,它就会出现在结果中,但是我无法在使用re.compile后不久获得要显示的特定单词。
这是html的片段
ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Result " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"><span class="test-case-result status-2">Passed</span></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Approval " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"><span class="test-case-approval-status status-1">Pending</span></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Time Left " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}"
这是用于刮取所有span标记的代码
soup.find_all('span')
然而,当我使用类似
soup.find_all('span', {re.compile('Passed|Failed')}):
似乎没有结果
我也试过
soup.find_all('span', {'test-case-result status-2': re.compile('Passed|Failed')})
应为-将刮除Pass和Fail的所有实例
实际-除了纯粹使用span tage之外,所有的刮取尝试都显示为空。
我确信这很简单,而且我遗漏了一些东西,但我真的很难在文档方面取得更多的进展。谢谢你的帮助。
对于bs 4.7.1,我将避免regex,而使用:contains
伪类
from bs4 import BeautifulSoup
html = '''
ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Result " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"><span class="test-case-result status-2">Passed</span></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Approval " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}" responsive-table-cell="ctrl.getCellData(col, row)" aria-hidden="false"><span class="test-case-approval-status status-1">Pending</span></td><!----><td ng-repeat="col in ctrl.tableConfig.columns" data-column-title="Time Left " ng-hide="col.isHidden || col.alwaysHide" ng-class="{'td-content-title':col.isContentTitle}"
'''
soup = BeautifulSoup(html, 'lxml')
spans = soup.select('span:contains(Passed),span:contains(Failed)')
print(spans)
在find_all()
中使用text=
soup.find_all('span', text=re.compile('Passed|Failed'))
如果没有text=
,则可以使用regex
搜索标记名。
本文向大家介绍如何捕获 setTimeout 异常相关面试题,主要包含被问及如何捕获 setTimeout 异常时的应答技巧和注意事项,需要的朋友参考一下 No description provided.
问题内容: 发现在Java 1.6(以及从Eclipse)上运行时,吞没了该方法中的异常之后,我试图找到一种捕获这些异常的方法,而不会在我的所有实现中都添加throw / catch 。 该API建议覆盖应对此有所帮助: 导致此future报告一个ExecutionException,并以给定throwable作为其原因,除非已经设置或取消了此Future。计算失败时,run方法在内部调用此方法。
我试图编写“好的”python并捕获一个S3,但没有这样的关键错误: 但是NoSuchKey没有定义,我无法跟踪到需要定义的导入。 是但是botocore.errorfactory导入的给出了一个错误,botocore.errorfactory导入的
我使用的是python 2.7和tornado 4.5 以下代码不起作用:除块不被触发。我不明白为什么? 相反,我可以捕获;但是我没有我如何调用的上下文。在我的例子中,更有意义的是引发一个较低级别的异常,并且调用者根据输入将其转换为人类可读的错误。 我是否只需要重构它来调用较低级别的gen.Task?那会很烦人:/
如何捕获doSomeThing()方法调用引发的异常,然后再引发它?
问题内容: 一切都很棒,直到遇到真正需要捕捉例外的地方。当我放置 在 阻止我得到: 在这种情况下我该怎么办? 谢谢, 问题答案: 这是因为,任何一种方法(javadoc链接)都不会引发检查异常。Spring将其转换为DataAccessException之一,它是更通用的运行时异常家族,以抽象出任何特定的基础数据库实现。