現在、ドキュメントを処理しています
<b> label1 </b>
value1 <br>
<b> label2 </b>
value2 <br>
....
Scrapy を使用した xpath へのクリーンなアプローチがわかりません。ここに私の最高の実装があります
hxs = HtmlXPathSelector(response)
section = hxs.select(..............)
values = section.select("text()[preceding-sibling::b/text()]"):
labels = section.select("text()/preceding-sibling::b/text()"):
しかし、インデックスを介して両方のリストのノードを照合するこのアプローチには満足していません。1 つのリスト (値またはラベル) を繰り返し処理し、一致するノードを相対 xpath としてクエリします。そのような :
values = section.select("text()[preceding-sibling::b/text()]"):
for value in values:
value.select("/preceding-sibling::b/text()"):
私はこの式を微調整してきましたが、常に一致を返しません
アップデート
「ノイズ」を許容する堅牢な方法を探しています。たとえば、次のようになります。
garbage1<br>
<b> label1 </b>
value1 <br>
<b> label2 </b>
value2 <br>
garbage2<br>
<b> label3 </b>
value3 <br>
<div>garbage3</div>