XPath のチェーン
Selector と SelectorList オブジェクトでは、xpath メソッドを使うときにチェーンができます。つまり、すでに xpath を適用した結果に対して、さらに xpath を続けて適用できるということです。たとえば、sel が Selector の名前だとすると、
sel.xpath('/html/body/div[2]')
は次と同じ意味になります。
sel.xpath('/html').xpath('./body/div[2]')
あるいは次とも同じです。
sel.xpath('/html').xpath('./body').xpath('./div[2]')
唯一のポイントは、後続の XPath 文字列の先頭にピリオドを付けて、XPath の断片を「つなぎ合わせる」必要があることです(上の例で XPath 文字列にピリオドを追加している点に注目してください)。
この演習はコースの一部です
Pythonで学ぶWebスクレイピング
演習の手順
- 次の選択と同じ結果になるように、2 つの
xpath呼び出しをチェーンする空所を埋めてください。
sel.xpath('//div/span/p[3]')
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Chain together xpath methods to select desired p element
sel.xpath( '//div' ).xpath( ____ )