亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Scrapy 沒有得到完整的產品名稱,用逗號替換一些字符?

Scrapy 沒有得到完整的產品名稱,用逗號替換一些字符?

慕碼人2483693 2023-02-22 15:52:26
我正在使用 scrapy 在中國電子商務網站天貓上獲取產品名稱和價格。代碼非常簡單,但是當它抓取名稱時,它用逗號替換了產品名稱的某些部分。對于下面的示例,我輸入了“ipad air 3”,第一個產品的名稱是“Apple/蘋果 10.5 英寸 iPad Air”?!?0.5英寸iPad Air”部分顯示顏色不同,我想是因為它與搜索關鍵字相匹配。但我不確定為什么 scrapy 在產品名稱的那部分得到“,,,,”。有誰知道我可以嘗試修復它的潛在方法?綜上所述,我想要得到的結果是“Apple/蘋果 10.5英寸 iPad air”;然而,我得到的結果是“Apple/蘋果'、''、''、''、'”。這是屏幕截圖: 我得到的網頁結果items = TmallspiderItem()product_info = response.css('.product-iWrap')for product in product_info:    product_name = product.css('.productTitle a::text').extract()    product_price = product.css('.productPrice em::text').extract()    items['product_name'] = product_name    items['product_price'] = product_price    yield items
查看完整描述

1 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

<a href="//detail.tmall.com/item.htm?id=612529092115&amp;skuId=4486436443940&amp;standard=1&amp;user_id=2202421911399&amp;cat_id=2&amp;is_b=1&amp;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元素的直接子元素的文本節點,因此它不會獲取這些元素的內容。


您可以修改選擇器以獲取所有后代并加入它們,但我建議改用normalize-space()xpath 函數。


>>> 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'


查看完整回答
反對 回復 2023-02-22
  • 1 回答
  • 0 關注
  • 75 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號