1 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個贊
<a href="//detail.tmall.com/item.htm?id=612529092115&skuId=4486436443940&standard=1&user_id=2202421911399&cat_id=2&is_b=1&rn=c9a973f4c51d2bf839339810354ff07a" target="_blank" title="Apple/蘋果 Apple/蘋果 10.5 英寸 iPad Air" data-p="8-11" >
Apple/蘋果 Apple/蘋果 <span class=H>10.5</span> <span class=H>英寸</span> <span class=H>iPad</span> <span class=H>Air</span>
</a>
如您所見,您嘗試獲取的名稱被拆分為多個span元素。
您的 css 選擇器僅選擇作為a元素的直接子元素的文本節(jié)點(diǎn),因此它不會獲取這些元素的內(nèi)容。
您可以修改選擇器以獲取所有后代并加入它們,但我建議改用normalize-space()xpath 函數(shù)。
>>> product.css('.productTitle a::text').extract()
['\nApple/蘋果 ', ' ', ' ', ' ', '\n']
>>> product.css('.productTitle a ::text').extract()
['\nApple/蘋果 ', '10.5', ' ', '英寸', ' ', 'iPad', ' ', 'Air', '\n']
>>> product.css('.productTitle a').xpath('normalize-space()').get()
'Apple/蘋果 10.5 英寸 iPad Air'
添加回答
舉報(bào)