Source code for hal.internet.engines

# -*- coding: utf-8 -*-

"""Abstract search engines """

from hal.internet.web import Webpage


[docs]class SearchEngineResult: """Result of general search engine""" def __init__(self, title, link, description=""): """ :param title: title of result :param link: search query url :param description: description of result """ self.title = title self.link = link self.description = description def __str__(self): return self.title
[docs]class SearchEngine: """Internet general search engine""" def __init__(self, url, blank_replace="+"): """ :param url: string Url of search engine used in all query :param blank_replace: Every search engine has to replace blanks in query """ self.url = str(url) self.web_page = Webpage(self.url) self.domain = self.web_page.get_domain() self.blank_replace = blank_replace
[docs] def parse_query(self, query): """Parses given query in order to meet search criteria of search engine :param query: Query to search engine :return: query of search engine (well-formatted) """ return query.strip().replace( " ", self.blank_replace ).lower() # remove trailing blanks, replace with search engine blanks
[docs] def get_search_page(self, query): """Gets HTML source :param query: query to search engine :return: HTML source of search page of given query """ query_web_page = Webpage(self.url + self.parse_query(query)) query_web_page.get_html_source() # get html source return query_web_page.source