def fetch(self, url, open_graph=None, twitter_card=None, touch_icon=None,<EOL>favicon=None, all_images=None, parser=None, handle_file_content=None,<EOL>canonical=None):
<EOL>open_graph = merge_settings(open_graph, self.open_graph)<EOL>twitter_card = merge_settings(twitter_card, self.twitter_card)<EOL>touch_icon = merge_settings(touch_icon, self.touch_icon)<EOL>favicon = merge_settings(favicon, self.favicon)<EOL>canonical = merge_settings(canonical, self.canonical)<EOL>all_images = merge_settings(all_images, self.all_images)<EOL>parser = merge_settings(parser, self.parser)<EOL>handle_file_content = merge_settings(handle_file_content, self.handle_file_content)<EOL>data = {<EOL>'<STR_LIT>': [],<EOL>'<STR_LIT>': [],<EOL>}<EOL>has_file_content = False<EOL>content_type = None<EOL>if handle_file_content:<EOL><INDENT>headers, status_code = self._retrieve_headers(url)<EOL>content_type = headers.get('<STR_LIT:Content-Type>')<EOL>has_file_content = content_type and not '<STR_LIT>' in content_type<EOL><DEDENT>if has_file_content and content_type:<EOL><INDENT>has_image_content = content_type in IMAGE_MIMETYPES<EOL>if has_image_content:<EOL><INDENT>parsed_url = urlparse(url)<EOL>data['<STR_LIT:title>'] = basename(parsed_url.path.lstrip('<STR_LIT:/>'))  <EOL>data['<STR_LIT:url>'] = url<EOL>data['<STR_LIT>'].append({<EOL>'<STR_LIT:type>': '<STR_LIT>',<EOL>'<STR_LIT:src>': url,<EOL>})<EOL><DEDENT><DEDENT>else:<EOL><INDENT>try:<EOL><INDENT>oembed_data, status_code = self._retrieve_oembed_data(url)<EOL>parse_oembed_data(oembed_data, data)<EOL><DEDENT>except LassieError:<EOL><INDENT>oembed_data = None<EOL><DEDENT>html, status_code = self._retrieve_content(url)<EOL>if not html and not oembed_data:<EOL><INDENT>raise LassieError('<STR_LIT>')<EOL><DEDENT>if '<STR_LIT>' not in html:<EOL><INDENT>html = re.sub(r'<STR_LIT>', '<STR_LIT>', html)<EOL><DEDENT>soup = BeautifulSoup(clean_text(html), parser)<EOL>self._filter_amp_data(soup, data, url, all_images)<EOL>if open_graph:<EOL><INDENT>self._filter_meta_data('<STR_LIT>', soup, data, url)<EOL><DEDENT>if twitter_card:<EOL><INDENT>self._filter_meta_data('<STR_LIT>', soup, data)<EOL><DEDENT>self._filter_meta_data('<STR_LIT>', soup, data)<EOL>if touch_icon:<EOL><INDENT>self._filter_link_tag_data('<STR_LIT>', soup, data, url)<EOL><DEDENT>if favicon:<EOL><INDENT>self._filter_link_tag_data('<STR_LIT>', soup, data, url)<EOL><DEDENT>if canonical:<EOL><INDENT>self._filter_link_tag_data('<STR_LIT>', soup, data, url)<EOL><DEDENT>if all_images:<EOL><INDENT>self._find_all_images(soup, data, url)<EOL><DEDENT>if soup.html.get('<STR_LIT>'):<EOL><INDENT>lang = soup.html.get('<STR_LIT>')<EOL><DEDENT>else:<EOL><INDENT>lang = soup.html.get('<STR_LIT>')<EOL><DEDENT>if lang and ('<STR_LIT>' not in data):<EOL><INDENT>locale = normalize_locale(lang)<EOL>if locale:<EOL><INDENT>data['<STR_LIT>'] = locale<EOL><DEDENT><DEDENT>data_url = data.get('<STR_LIT:url>')<EOL>if not data_url or (data_url in url and len(data_url) < len(url)):<EOL><INDENT>data['<STR_LIT:url>'] = url<EOL><DEDENT>if ('<STR_LIT:title>' not in data or not data.get('<STR_LIT:title>')) and hasattr(soup.title, '<STR_LIT:string>'):<EOL><INDENT>data['<STR_LIT:title>'] = soup.title.string<EOL><DEDENT><DEDENT>data['<STR_LIT>'] = status_code<EOL>return data<EOL>
Retrieves content from the specified url, parses it, and returns
        a beautifully crafted dictionary of important information about that
        web page.

        Priority tree is as follows:
            1. OEmbed
            2. Open Graph
            3. Twitter Card
            4. Other meta content (i.e. description, keywords)

        :param url: URL to send a GET request to
        :param open_graph: (optional) If ``True``, filters web page content for Open Graph meta tags. The content of these properties have top priority on return values.
        :type open_graph: bool
        :param twitter_card: (optional) If ``True``, filters web page content for Twitter Card meta tags
        :type twitter_card: bool
        :param touch_icon: (optional) If ``True``, retrieves Apple touch icons and includes them in the response ``images`` array
        :type touch_icon: bool
        :param favicon: (optional) If ``True``, retrieves any favicon images and includes them in the response ``images`` array
        :type favicon: bool
        :param canonical: (optional) If ``True``, retrieves canonical url from meta tags. Default: False
        :type canonical: bool
        :param all_images: (optional) If ``True``, retrieves images inside web pages body and includes them in the response ``images`` array. Default: False
        :type all_images: bool
        :param parser: (optional) String reference for the parser that BeautifulSoup will use
        :type parser: string
        :param handle_file_content: (optional) If ``True``, lassie will return a generic response when a file is fetched. Default: False
        :type handle_file_content: bool