Esempio n. 1
0
class SearchGoogle():
    def __init__(self, query, start_page=0, number_of_results=100, timeout=10):

        self.query = query
        self.start_page = start_page
        self.number_of_results = number_of_results
        self.timeout_requests = timeout
        self.failed_request = 'Our systems have detected unsual traffic from\
                                your computer network'

        self.filter_string = ["google"]
        self.randomize = Randomize()
        self.parser = Parser()

    def search_results(self):
        parameters = {
            'q': self.query,
            'start': self.start_page,
            'num': self.number_of_results
        }

        user_agent = self.randomize.get_random_user_agent()
        google_url = self.randomize.get_random_google_url()

        log_info("Searching")
        log_info(user_agent)
        log_info("Google URL {0}".format(google_url))

        response = requests.get(url=google_url,
                                params=parameters,
                                timeout=self.timeout_requests,
                                headers=user_agent)

        if self.failed_request in response:
            logo_danger("Google detected malicious traffic")
            return 1

        bs = BeautifulSoup(response.text, "lxml")

        links = bs.find_all("a")
        links = self.parser.remove_bad_urls(self.filter_string, links)

        log_info("Number of targets: {0}".format(len(links)))
        print("-" * 79)

        return links