'Plugin entry point. Get responses, analyze words, create dictionary.
:param request: The HTTP request object.
:param response: The HTTP response object
:return: None.'

def grep(self, request, response):

    if (not self.got_lang()):
        return
    if ((response.get_code() not in self.BANNED_STATUS) and (not is_404(response)) and (request.get_method() in self.ALLOWED_METHODS)):
        old_data = kb.kb.raw_read(self.get_name(), self.get_name())
        if (not isinstance(old_data, dict)):
            return
        data = self._run_plugins(response)
        with self._plugin_lock:
            new_data = self.merge_maps(old_data, data, request, self.captured_lang)
            new_data = self._trim_data(new_data)
            kb.kb.raw_write(self, self.get_name(), new_data)
