python-3.x - Scrapy - 抓取评论跳过 <br> 之后的文本

标签 python-3.x scrapy

我能够检索到
标记之前的文本,但不能检索到它之后的文本。

这是我试图从中收集评论的网站: 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ただただ涙が止まらない会見だった'}

最后两条评论都有一个
标签,在这两种情况下,评论的第二部分都被省略了。

我真的很感激任何帮助。

最佳答案

我运行了你的蜘蛛并意识到当你 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胸が締め付けられそうだ。']}

关于python-3.x - Scrapy - 抓取评论跳过 <br> 之后的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44964462/

相关文章:

Python 有时不会将类实例作为第一个参数传递 - 理解 __new__

python-3.x - Groupby 列,按时间戳排序并计算 Pandas Dataframe 中时间戳之间的差异?

Python Scrapy没有为每个链接执行scrapy.Request回调函数

html - 针对不同结构的多个网站进行网络爬取

python : scrapy using proxy IP

python - 使用迭代器了解len函数

python - 如何在 Python 中表示 'Enum'?

python - 有没有一种简单的方法可以在列表中的单词中添加空格?

python - python的scrapy如何使用css选择器提取url?

Python Scrapy Xpath?