2017-07-07 52 views
0

後的文本我能夠檢索
標籤之前的文本,但不能檢索後面的文本。Scrapy - 刮評論跳過<br>

這是我試圖颳去評論網站: http://hamusoku.com/archives/9589071.html#comments

從一些評論開始包括
標籤,我認爲意味着用戶按下回車鍵。有沒有辦法將
標籤前後的文字作爲單個評論?

這裏是源代碼的樣本

<li="comment-body"> ==$0 
    " 
    愛の言葉も、この瞬間は辛い。" 
    <br> 
    " 
    胸が締め付けられそうだ。" 

這是我的代碼:

import scrapy 


class HamusoSpider(scrapy.Spider): 
    name = 'hamuso' 
    start_urls = ['http://hamusoku.com/archives/9589071.html#comments/'] 

    def parse(self, response): 
     for com in response.css('li.comment-body'): 
     item = { 
     'comment': com.css('li::text').extract_first() 
     } 
     yield item 

這是我在shell我得到的輸出:

{'comment': '\n\t\n\tかなしいなぁ'} 
{'comment': '\n\t\n\t海老蔵…つらいな'} 
{'comment': '\n\t\n\t海老蔵には頑張って欲しいな'} 
{'comment': '\n\t\n\t御冥福をお祈りします'} 
{'comment': '\n\t\n\t泣かすなや。'} 
{'comment': '\n\t\n\t海老蔵これからしっかりせなアカンぞ'} 
{'comment': '\n\t\n\t愛の言葉も、この瞬間は辛い。'} 
{'comment': '\n\t\n\tただただ涙が止まらない會見だった'} 

最後兩條評論都有
標籤,在這兩種情況下,評論的第二部分都被省略。

我真的很感激任何幫助。

回答

0

我跑過了你的蜘蛛,發現當你extraxt_first()時,你只會得到第一個項目或第一個評論,其餘的都是在<br>之後的標籤不可緩解。

爲了解決這個問題,使用extract()這將返回所有的評論列表中comment-body

import scrapy 

class HamusoSpider(scrapy.Spider): 
    name = 'hamuso' 
    start_urls = ['http://hamusoku.com/archives/9589071.html#comments/'] 
    def parse(self, response): 
     for com in response.css('li.comment-body'): 
      item = {'comment': com.css('li::text').extract()} 
      yield item 

輸出我得到你的輸出最後一個註釋是

{'comment': ['\n\t\n\tただただ涙が止まらない會見だった', '\n本當に短い人生だったけど豊かな人生だったのがわかる']} 
{'comment': ['\n\t\n\t愛の言葉も、この瞬間は辛い。', '\n胸が締め付けられそうだ。']} 
+0

謝謝你許多!你是最好的,我不能相信我花了2個小時試圖解決這個問題。 –

+0

@JakeOlesniewicz請將此標記爲已接受的答案,以便它可以幫助他人 –