在Scrapy中获取评论之间的内容

时间:2014-12-10 09:58:14

标签: python xpath comments scrapy block

我试图通过Scrapy获取评论之间的内容。我发现this已经发现了{{3}},但没有比仅通过这种方式提取评论更进一步。我的目标是在每次“开始评论”和“结束评论”发生时,在2条评论之间得到所有内容。假设网站上的块的结构如下:

<!-- Start -->
<div class.. >
    <ul>...
        more content
    </ul>
</div>
<!-- End -->

<!-- Start -->
    same structure, different entries
<!-- End -->

<!-- Start -->
    same structure, different entries
<!-- End -->
....

我正在寻找的东西就像xpath一样,可以找到特定的字符串并将它们全部保存在列表中,并获得类似于“[contentBlock1,contentBlocks2,...]”的输出,就像这样您通常使用xpath获取输出。任何有帮助的东西都非常感谢:)

编辑:值得注意的是,我目前正在使用scrapy响应/选择器对象。能够处理任何一种解决方案都是首选。

2 个答案:

答案 0 :(得分:0)

类似于response.xpath(&#39; .// * [@ id =&#34;您的ID在这里&#34;] / ul / text()&#39;)。extract()应该这样做

答案 1 :(得分:-1)

如果您愿意使用re,可以试试这个。

print re.findall(r"(?<=<!-- Start -->\s)(.*?)(?=\s<!-- End -->)",test_string,re.DOTALL)

这将返回包含您想要的内容的列表。

参见演示。

https://regex101.com/r/nL5yL3/17