Get bedroom, bathroom, sqft and more information.

        Example: http://www.zillow.com/homedetails/8510-Whittier-Blvd-Bethesda-MD-20817/37183103_zpid/

def get_house_detail(self, html):
        """Get bedroom, bathroom, sqft and more information.

        Example: http://www.zillow.com/homedetails/8510-Whittier-Blvd-Bethesda-MD-20817/37183103_zpid/
        """
        if "I'm not a robot" in html:
            raise exc.CaptchaError(url)

        data = {"errors": dict()}
        soup = self.get_soup(html)

        # header part, bedroom, bathroom, sqft
        header = soup.find("header", class_="zsg-content-header addr")
        if header is None:
            raise exc.ParseError(url)

        try:
            h3 = header.find("h3")
            if h3 is None:
                raise exc.ParseError

            span_list = h3.find_all("span", class_="addr_bbs")
            if len(span_list) != 3:
                raise exc.ParseError

            text = span_list[0].text
            try:
                bedroom = float_filter(text)
                data["bedroom"] = bedroom
            except:
                data["errors"][
                    "bedroom"] = "can't parse bedroom from %r" % text

            text = span_list[1].text
            try:
                bathroom = float_filter(text)
                data["bathroom"] = bathroom
            except:
                data["errors"][
                    "bathroom"] = "can't parse bathroom from %r" % text

            text = span_list[2].text
            try:
                sqft = int_filter(text)
                data["sqft"] = sqft
            except:
                data["errors"]["sqft"] = "can't parse sqft from %r" % text
        except:
            pass

        # Facts, Features, Construction, Other (FFCO)
        div_list = soup.find_all(
            "div", class_=re.compile("fact-group-container zsg-content-component"))

        for div in div_list:
            h3 = div.find("h3")
            if h3.text == "Facts":
                try:
                    facts = list()
                    for li in div.find_all("li"):
                        facts.append(li.text.strip())
                    data["facts"] = facts
                except Exception as e:
                    data["errors"]["facts"] = str(e)

            if h3.text == "Features":
                features = list()
                try:
                    for li in div.find_all("li"):
                        if '"targetDiv"' not in li.text:
                            features.append(li.text.strip())
                    data["features"] = features
                except Exception as e:
                    data["errors"]["features"] = repr(e)

            if h3.text == "Appliances Included":
                appliances = list()
                try:
                    for li in div.find_all("li"):
                        appliances.append(li.text.strip())
                    data["appliances"] = appliances
                except Exception as e:
                    data["errors"]["appliances"] = repr(e)

            if h3.text == "Additional Features":
                additional_features = list()
                try:
                    for li in div.find_all("li"):
                        additional_features.append(li.text.strip())
                    data["additional_features"] = additional_features
                except Exception as e:
                    data["errors"]["additional_features"] = repr(e)

            if h3.text == "Construction":
                construction = list()
                try:
                    for li in div.find_all("li"):
                        construction.append(li.text.strip())
                    data["construction"] = construction
                except Exception as e:
                    data["errors"]["construction"] = repr(e)

            if h3.text == "Other":
                other = list()
                try:
                    for li in div.find_all("li"):
                        other.append(li.text.strip())
                    data["other"] = other
                except Exception as e:
                    data["errors"]["other"] = repr(e)

        if len(data["errors"]) == 0:
            del data["errors"]

        if data:
            return data
        else:
            return None