我正在尝试在可在此处找到的节点上运行以下代码: http://pastebin.com/r0GaCVLh
基本上:如果我的节点是table fielded
我想在桌面上进行特定处理,否则如果它是table substitutes
我想要一个不同的处理。
出于某种原因完全超出我的条件:
if table.xpath('./*[@class="table fielded"]'):
和
if table.xpath('./*[@class="table substitutes"]'):
似乎失败了。并且永远不会设置变量fielded
。
以下是不起作用的代码片段(print
仅用于首次亮相):
for table in sel.xpath('.//table[@class="table fielded" or @class="table substitutes"]'):
print table.extract()
if table.xpath('./*[@class="table fielded"]'):
fielded = True
print fielded
if table.xpath('./*[@class="table substitutes"]'):
fielded = False
print fielded
答案 0 :(得分:1)
让我们来看看这一行:
if table.xpath('./*[@class="table fielded"]')
在这里,您要搜索已找到的table fielded
中包含table
类的任何元素。显然,没有与此定位器匹配的元素。
相反,提取@class
值并根据其值做出决定:
for table in sel.xpath('.//table[@class="table fielded" or @class="table substitutes"]'):
table_class = table.xpath("@class").extract_first()
if "fielded" in table_class:
# do smth