Get valid location header values for all given URLs.

        The returned values are new, that is: they do not repeat any
        value contained in the original input. Only unique values
        are yielded.

        :param urls: a list of URL addresses
        :returns: valid location header values from responses
        to the URLs

def get_new_locations(self, urls):
        """Get valid location header values for all given URLs.

        The returned values are new, that is: they do not repeat any
        value contained in the original input. Only unique values
        are yielded.

        :param urls: a list of URL addresses
        :returns: valid location header values from responses
        to the URLs
        """
        seen = set(urls)
        for i in urls:
            for k in self.get_locations(i):
                if k not in seen:
                    seen.add(k)
                    yield k