2017-07-07 11 views
0


タグの前のテキストは取得できますが、後ろのテキストは取得できません。Scrapy - コメントのスクラップは、後にテキストをスキップします<br>

これは私からのコメントをこすりしようとしているウェブサイトです:いくつかのコメントから始まっ http://hamusoku.com/archives/9589071.html#comments

は、私は、ユーザーが入力したヒットという意味だと思う
タグが含まれます。
タグの前後のテキストを1つのコメントとして取得する方法はありますか?ここで

は、ソースコード

<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 

これは私がシェルに取得しています出力されます:

{'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ただただ涙が止まらない会見だった'} 

最後の2つのコメントは両方とも
タグを持ち、どちらの場合もコメントの2番目の部分は省略されています。

本当にありがとうございます。

答えて

0

私はあなたの蜘蛛を走らせて、extraxt_first()のときには、最初の項目または最初のコメントだけを得ることに気づきました。それは<br>タグが到達不能の後です。この問題を解決するには

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

はとてもありがとうです、これはすべてのコメントのリストを返しますextract()を使用多く!あなたは最高です、私はそれを修正しようと2時間を費やしたとは信じられません。 –

+0

@JakeOlesniewicz他人を助けることができるように、これを受け入れられた回答としてマークしてください –

関連する問題