Scrapy提取巢狀標籤的text

2021-10-01 16:14:48 字數 2147 閱讀 7451

對於要提取巢狀標籤所有內容的情況, 使用string//text(), 注意兩者區別

python

>>> from scrapy

import selector >>> >>> doc = "helloworld!

" >>> >>> sel = selector(text=doc, type='html') >>> >>> sel.xpath("/p[@id='test']/text()").extract()

1

2

3

4

5

6

7

8

>>>

from

scrapy

import

selector

>>>

>>>

doc=

"helloworld!

"

>>>

>>>

sel=

selector

(text

=doc

,type

='html'

)>>>

>>>

sel.

xpath

("/p[@id='test']/text()").

extract()

[ ]

使用text()

python

>>>#使用兩個反斜槓 >>> sel.xpath("//p[@id='test']/text()").extract() [u'hello'] >>> #這樣提取出來是乙個列表, >>> sel.xpath("//p[@id='test']//text()").extract() [u'hello', u'world!'] >>>

1

2

3

4

5

6

7

>>>

#使用兩個反斜槓

>>>

sel.

xpath

("//p[@id='test']/text()").

extract()

[ u

'hello'

]>>>

#這樣提取出來是乙個列表,

>>>

sel.

xpath

("//p[@id='test']//text()").

extract()

[ u

'hello',u

'world!'

]>>>

使用string

python

>>> sel.xpath("//p[@id='test']").xpath('string(.)').extract() [u'helloworld!'] >>> >>> sel.xpath("string(//p[@id='test'])").extract() [u'helloworld!'] >>>

1

2

3

4

5

6

>>>

sel.

xpath

("//p[@id='test']").

xpath

('string(.)').

extract()

[ u

'helloworld!'

]>>>

>>>

sel.

xpath

("string(//p[@id='test'])").

extract()

[ u

'helloworld!'

]>>>

5868037 qq號

[email protected] qq郵箱

scrapy 一次性提取多層巢狀標籤的所有文字

怎樣才能一次性提取多層巢狀標籤的所有文字,而不是通過迴圈判斷來進行拼接呢。詳細如下 假如頁面如下 helloworld 我要的提取結果是 helloworld 這裡就需要注意text 的使用了 首先設定sel selector text doc,type html 如果text 前面使用乙個反斜槓 ...

scrapy使用用Xpath提取深層標籤

在使用scrapy框架做爬蟲時,有兩種方式對標籤內容進行提取 css和xpath。基本的標籤內容,屬性提取都很容易。但對於多層巢狀的標籤,如何提取到最裡層的內容呢?舉個栗子 網頁html內容是 id test helloworld b p 如何一下子提取到hello world 呢?用css的話需要...

24 Scrapy資料的提取

從網頁中提取資料,scrapy 使用基於 xpath 和 css 表示式的技術叫做選擇器。以下是 xpath 表示式的一些例子 html head title html head title text td div class slice 選擇器有四個基本的方法,如下所示 s.n.方法 描述 ext...