Fetch a location's corresponding LID.

        Args:
            woeid: (string) the location's WOEID.

        Returns:
            a string containing the requested LID or None if the LID could
            not be found.

        Raises:
            urllib.error.URLError: urllib.request could not open the URL
                (Python 3).
            urllib2.URLError: urllib2 could not open the URL (Python 2).
            xml.etree.ElementTree.ParseError: xml.etree.ElementTree failed to
                parse the XML document.

def fetch_lid(self, woeid):
        """Fetch a location's corresponding LID.

        Args:
            woeid: (string) the location's WOEID.

        Returns:
            a string containing the requested LID or None if the LID could
            not be found.

        Raises:
            urllib.error.URLError: urllib.request could not open the URL
                (Python 3).
            urllib2.URLError: urllib2 could not open the URL (Python 2).
            xml.etree.ElementTree.ParseError: xml.etree.ElementTree failed to
                parse the XML document.

        """
        rss = self._fetch_xml(LID_LOOKUP_URL.format(woeid, "f"))

        # We are pulling the LID from the permalink tag in the XML file
        # returned by Yahoo.

        try:
            link = rss.find("channel/link").text
        except AttributeError:
            return None

        # use regex or string.split
        # regex assumes the format XXXXNNNN for the LID.
        # string.split works more general of the context.

        lid = re.search("[A-Za-z]{4}[0-9]{4}", link).group()
        # lid = link.split("/forecast/")[1].split("_")[0]

        return lid