我试图通过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响应/选择器对象。能够处理任何一种解决方案都是首选。
答案 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)
这将返回包含您想要的内容的列表。
参见演示。