私はscrapyを使用していくつかの詩をクロールしようとしていますが、次のテキストがあります。
Lorem ipsum dolor sit amet,<br>
consectetuer adipiscing elit.<br>
<br>
Aenean commodo ligula eget dolor.<br>
Aenean massa
そして、私はそれが次のようにスクレイプなxpathであることを選択します:
In [1]: sel.xpath('//div[@class="box"]/text()').extract()
Out[1]:
[u'Lorem ipsum dolor sit amet,',
u'consectetuer adipiscing elit.',
u'Aenean commodo ligula eget dolor.',
u'Aenean massa',]
余分なbrを無視しないようにするにはどうすればよいですか?
<br>
タグを返さないように強制しますScrapyは、<br>
タグを無視するように指示したため、タグを無視します。XPathクエリ
//div[@class="box"]/text()
のすべてのダイレクトテキストノードの子を//div[@class="box"]
選択し、それらのみを選択します。これらの<br>
タグの中で、他のノードタイプは単に無視されます。
<br>
タグに拡張するあなたもしたい場合は<br>
、トークンが返され、テキストノードとの両方を選択し<br>
たトークンを:
(//div[@class="box"]/text() | //div[@class="box"]/br)
ここで、すべての結果をループします。テキストノードに出くわした場合は、その内容を<br>
返します。()タグは改行を返します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加