예제 #1
0
def worker():
    th = list()
    for _ in range(Parser.settings.THREADS):
        p = Parser()
        t = threading.Thread(target=p.parser)
        t.start()
        th.append(t)  # '''
    '''
    while True:
        print u"Чтобы остановить парсинг введите - S (Stop)\n"
        ex = raw_input()
        if ex.lower() == 's':
            Parser.stop_flag = True
            break  # '''

    for t in th:
        t.join()

    Parser().scan_errors()

    print u'*******Сканирование прекращено*******'
    print u'Успел отсканировать: {}'.format(len(Parser.urls_old))
    print u'Осталось в очереди на сканирование: {}'.format(len(
        Parser.urls_new))
    print u'*******Ошибок всего: {}*******'.format(len(Parser.errors))
예제 #2
0
def worker():
    p = Parser()
    p.install(se.START_LINK)
    print u"Инициализирован парсер"

    th = list()
    for _ in range(Parser.settings.THREADS):
        p = Parser()
        t = threading.Thread(target=p.parser)
        t.start()
        th.append(t)

    while True:
        print u"Чтобы остановить парсинг введите - S (Stop)\n"
        ex = raw_input()
        if ex.lower() == 's':
            Parser.stop_flag = True
            break

    for t in th:
        t.join()

    with open('urls_new.txt', 'w') as f:
        for u in Parser.urls_new:
            f.write(u + '\n')
    print u'***Неотсканированные урлы записаны в файл***'

    p.scan_errors()

    print u'*******Сканирование прекращено*******'
    print u'Успел отсканировать: {}'.format(len(Parser.urls_old))
    print u'Осталось в очереди на сканирование: {}'.format(len(Parser.urls_new))
    print u'*******Ошибок всего: {}*******'.format(len(Parser.errors))
예제 #3
0
def main():
    p = Parser('http://google.com.ua/', False)
    db_name = 'google-' + date.today().isoformat()
    Parser.db = Parser.client[db_name]
    p.regulars = {u'sites': u'//h3[@class="r"]/a/@href'}

    for n, q in enumerate(queries):
        for j in range(3):
            start = j * 100
            start = '&start=' + str(start)
            p.url = google + urllib.quote(qa(q).encode('cp1251')) + start
            p.open_url()
            p.get_elements()
            p.set_elements()
            p.result[u'query'] = q
            p.result[u'sites'] = norm(p.result[u'sites'])
            p.result[u'search_page'] = j
            p.save()
            p.clean()
            print u'Запрос: [{}] "{}" отсканирован и сохранен'.format(n, q)
예제 #4
0
def main():

    client = MongoClient(settings.DATABASE)
    db_name = 'google-2015-11-03'
    db = client[db_name]
    gr = db.urls.find()

    for query in gr:
        print query['query']
        for i in range(100):
            if query['sites'][i].startswith('http'):
                print query['sites'][i]
                if db.index.find({u'url': query['sites'][i]}).count() == 1:
                    continue
                p = Parser()
                p.url = query['sites'][i]
                p.open_url()
                p.get_links()
                p.get_elements()
                p.set_elements()
                p.result['query'] = query['query']
                p.result['position'] = i + (query['search_page'] * 100)
                db.index.insert_one(p.result)
                t = TextAnalyzer(p.result)
                t.keys = query['query'].split()
                t.analyze()