Scrapy从论坛抓取数据

时间:2014-12-01 07:24:00

标签: python scrapy web-crawler

我是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'),
    ]

1 个答案:

答案 0 :(得分:2)

  1. 您需要自己定制一种机制并将其置于设置中。像这样:
  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'
    
    1. 是。只要爬网正在运行,它就会起作用
    2. 我不认为这里有困难。使用您熟悉的任何数据库。