我是Scrapy的新手。 我想抓取一个论坛的所有帖子,并为这些新帖子提供最新信息。 我想弄清楚一些问题。
1.如何确保爬行器不会两次爬行?
2.如果有一些机制可以避免两次抓取帖子。即使我重新启动爬虫,这个机制也会工作吗?
3.抓取工具会不会自动抓取新帖子吗?
4.我需要在这个项目中使用什么db / plugin?
这是蜘蛛类的初始化
name = "forum"
allowed_domains = ["forum.com"]
start_urls = (
'http://s7.forum.com/posts.aspx',
)
rules = [
Rule(LinkExtractor(allow=('mid=', )), callback='parse_item'),
]
答案 0 :(得分:2)
来自scrapy.dupefilter导入RFPDupeFilter
类SeenURLFilter(RFPDupeFilter):
def __init__(self, path=None):
self.urls_seen = set()
RFPDupeFilter.__init__(self, path)
def request_seen(self, request):
if request.url in self.urls_seen:
return True
else:
self.urls_seen.add(request.url)
请务必将DUPEFILTER_CLASS常量添加到settings.py:
DUPEFILTER_CLASS = 'scraper.custom_filters.SeenURLFilter'