抽出したいテキストの xpath は、ツリーの奥深くに確実に配置されています。
...table/tbody/tr[4]/td[2]
具体的には、td[2] は次のように構成されています。
<td class="val">xyz</td>
テキスト「xyz」を抽出しようとしていますが、広範な検索では複数の結果が返されます。たとえば、次のパスは 10 個の要素を返します。
xpath('//td[@class="val"]')
...特定の検索では要素が返されません。以下が何も返さない理由がわかりません。
xpath('//tbody/tr/td[@class="val"]')
1つの解決策には..
table = root.xpath('//table[@class="123"]')
#going down the tree
xyz = table[0][3][1]
print vol.text
ただし、これは非常に脆弱であると確信しています。脆くなく、リソースが比較的安価なxpath検索を構築する方法を誰かが教えてくれれば幸いです