2015-12-26 68 views
0

我遇到一個HTML這樣的:Scrapy:斷點之間解析文本

<span itemprop="description"> 
    Colour: Blue 
    <br> 
    Fabric: Cotton Silk 
    <br> 
    Type Of Work: Printed 
    <br><br> 
    Product colour may slightly vary due to photographic lighting sources or your monitor settings. 
</span> 

我想解析斷點之間的文本,並分別得到它們。理想的結果是一樣的東西:

["Colour: Blue", "Fabric: Cotton Silk", "Product colour may slightly vary due to photographic lighting sources or your monitor settings."] 

我已經試過

response.xpath('//*[@itemprop="description"]/text()').extract() 

但是這一起給了我整個文本在一個單一的字符串。

如何在「
」標籤周圍單獨獲取它。

回答

0

我試過你的代碼,它看起來像在工作。我做了一些調整,以清洗通過re()方法提取的數據:

>>> sel.xpath('//span[@itemprop="description"]/text()').re("\s*(.+)\s*") 
[u'Colour: Blue', u'Fabric: Cotton Silk', u'Type Of Work: Printed', u'Product colour may slightly vary due to photographic lighting sources or your monitor settings.'] 

是你需要什麼?

+0

您已經取代了 '提取物()' 法 '重()',它仍然給我相同的輸出: '[u'Colour:MulticolouredFabric:CrepeType作:PrintedSize:(Saree- 5.5米,女襯衫 - 0.80米)', u由於攝影照明來源或您的顯示器設置,產品顏色可能會略有不同。圖片中顯示的縫合的服裝/襯衫僅用於介紹目的。']'。 它仍然不分離顏色和結構。 –

+0

可以請你分享一個pastebin或實際的URL中的整個HTML? –

+0

順便說一句,'re()'調用只是應該修剪每個項目的內容。 –