繁体   English   中英

从论坛抓取数据

[英]Scrapy crawling data from a forum

我是Scrapy的新手。 我想从论坛中检索所有帖子,并为这些新帖子获取最新信息。 我想找出一些问题。

1.如何确保抓取工具不会两次抓取帖子?

2.如果有某种机制可以避免两次抓取帖子。 即使我重新启动搜寻器,此机制也会起作用吗?

3.爬虫会继续自动爬行新帖子吗?

4.我需要在这个项目中使用什么数据库/插件?

这是蜘蛛类的初始化

name = "forum"
    allowed_domains = ["forum.com"]
    start_urls = (
        'http://s7.forum.com/posts.aspx',
    )

    rules = [
        Rule(LinkExtractor(allow=('mid=', )), callback='parse_item'),
    ]
  1. 您需要自己定制一种机制并将其放入设置中。 像这样:

从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. 是。
  3. 我看不到这里的困难。 使用您熟悉的任何数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM