Пример #1
0
    def __init__(self, args):
        urls = None
        if args.input_file is not None:
            args.quiet = True

            with open(args.input_file, 'r') as input_file:
                urls = []
                for url in input_file.readlines():
                    url = url.strip()
                    urls.append(url if '://' in url else 'http://' + url)

        else:
            args.url = args.url.lower()
            if '://' not in args.url:
                args.url = 'http://' + args.url

        text_printer = Printer(args.verbosity)
        cache = Cache()
        cache.set_location(args.cache_dir)

        cache.printer = text_printer

        self.options = {
            'url': args.url,
            'urls': urls,
            'quiet': args.quiet,
            'prefix': '',
            'user_agent': args.user_agent,
            'proxy': args.proxy,
            'verbosity': args.verbosity,
            'insecure': args.insecure,
            'threads': 10,
            'batch_size': 20,
            'run_all': args.run_all,
            'match_all': args.match_all,
            'stop_after': args.stop_after,
            'no_cache_load': args.no_cache_load,
            'no_cache_save': args.no_cache_save,
            'write_file': args.output_file,
            'subdomains': args.subdomains
        }

        self.data = {
            'cache': cache,
            'results': Results(self.options),
            'fingerprints': Fingerprints(),
            'matcher': Match(),
            'printer': text_printer,
            'detected_cms': set(),
            'error_pages': set(),
            'requested': queue.Queue()
        }

        if self.options['write_file'] is not None:
            self.json_outputter = OutputJSON(self.options, self.data)

        self.data['printer'].print_logo()

        self.results = None
Пример #2
0
def run_fingerprint(place_id):
    client = MongoClient(dbhost, dbport)
    db = client.prospectinator
    places = db.places

    query_url = place_url % (place_id, gmaps_apikey)

    # retrieve a record by the place id. If it is not present, create a new one.
    place_doc = places.find_one({'result.place_id': place_id}) or json.loads(
        requests.get(query_url).text)
    if 'website' in place_doc['result']:
        if 'fingerprint' not in place_doc and site_is_up(
                place_doc['result']['website']):
            print("scanning url %-40s for place ID %s" %
                  (place_doc['result']['website'], place_id))
            w = wig(url=place_doc['result']['website'])
            w.run()
            results = OutputJSON(w.options, w.data)
            results.add_results()
            place_doc['fingerprint'] = results.json_data[0]
            places.save(place_doc)

    return