def extract_first_value_with_xpath(selector, xpath_string, func=str.strip, default=None):
    """
    Extract first value with Selector.xpath()
    @selector: this is Selector instance method first argument (self).
    @xpath_string: css string pass to Selector.xpath().
    @func: function at least accepts 1st string argument.(or other arguments has default value)
    @default: default value if there is no result from Selector.xpath()
    return a processed value returned from @func.
    """
    results = selector.xpath(xpath_string)
    if results is None or len(results) == 0:
        return default
    else:
        if func is None:
            return results[0].extract()
        else:
            return func(results[0].extract())