我刚刚开始使用Python进行编码,我的朋友问我应用程序在网络上找到特定的数据,很好地表示它。 我已经找到漂亮的网页,其中包含数据,我可以找到基本信息,但接下来的挑战是要深入。bs4 parent attrs python
虽然在Python 3.4使用BS4我已经达到了示范代码:
<tr class=" " somethingc1="" somethingc2="" somethingc3="" data-something="1" something="1something6" something_id="6something0">
<td class="text-center td_something">
<div>
<a href="something/126" target="_blank">Super String of Something</a>
</div>
</td>
<td class="text-center">08/26 15:00</td>
<td class="text-center something_status">
<span class="something_status_something">Full</span>
</td>
</tr>
<tr class=" " somethingc1="" somethingc2="" somethingc3="" data-something="0" something="1something4" something_id="6something7">
<td class="text-center td_something">
<div>
<a href="something/146" target="_blank">Super String of Something</a>
</div>
</td>
<td class="text-center">05/26 15:00</td>
<td class="text-center something_status">
<span class="something_status_something"></span>
</td>
</tr>
我想现在要做的是找到的日期字符串,但只有当数据出头=的父母,而不是如“1”数据出头=“0”
我可以放弃所有日期:
soup.find_all(lambda tag: tag.name == 'td' and tag.get('class') == ['text-center'] and not tag.has_attr('style'))
,但它不检查父。这就是为什么我尝试过:
def KieMeWar(tag):
return tag.name == 'td' and tag.parent.name == 'tr' and tag.parent.attrs == {"data-something": "1"} #and tag.get('class') == ['text-center'] and not tag.has_attr('style')
soup.find_all(KieMeWar)
结果是一个空集。什么是错误的或如何达到我期望的最简单解决方案的目标?
P.S.这是完整代码的示例性部分,这就是为什么我不使用Style的原因,即使它没有出现在这里,但是稍后会出现。
也许你能够做到这与XPath的引用。 –