Нужна помощь

Discussion in 'Социальные сети' started by crymore, 27 Jun 2012.

  1. crymore

    crymore Member

    Joined:
    12 Oct 2010
    Messages:
    0
    Likes Received:
    26
    Reputations:
    1
    Есть многомиллионные базы примерно 500 миллионов строк. Нужно спарсить все строки с доменом @mail.ru и дочерние домены бк лист инбокс. Файл могу порезать по 10-20 лям. Вопрос собсно чем спарсить можно?! В приоритете большая скорость работы. железо позволяет.
     
    #1 crymore, 27 Jun 2012
    Last edited: 27 Jun 2012
  2. a.dimka

    a.dimka Member

    Joined:
    14 Dec 2011
    Messages:
    0
    Likes Received:
    10
    Reputations:
    3
    http://newox.ru/kwk.php
     
  3. crymore

    crymore Member

    Joined:
    12 Oct 2010
    Messages:
    0
    Likes Received:
    26
    Reputations:
    1
    С многомиллионными базами пробовал работать?
     
  4. a.dimka

    a.dimka Member

    Joined:
    14 Dec 2011
    Messages:
    0
    Likes Received:
    10
    Reputations:
    3
    По 20 лямов разбей.
    Кстати, а ты чем разбиваешь?
     
  5. crymore

    crymore Member

    Joined:
    12 Oct 2010
    Messages:
    0
    Likes Received:
    26
    Reputations:
    1
    от пухина софт
     
  6. qwerra

    qwerra Elder - Старейшина

    Joined:
    21 Apr 2007
    Messages:
    211
    Likes Received:
    68
    Reputations:
    4
    KeyWordKeeper от newox.ru самое оно
     
  7. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Скачать и установить Python 2.7.3: http://python.org/download/

    Code:
    #!/usr/bin/env python
    #-*-encoding:UTF-8-*-
    
    db_name = raw_input("Enter database name: ")
    with open(db_name) as inpt:
        with open("mail_ru.txt", "w") as out:
            with open("invalid_mails.txt", "w") as invalid:
                counter = 0
                domains = ("mail.ru", "inbox.ru", "bk.ru", "list.ru")
                for line in inpt:
                    counter += 1
                    try:
                        login, domain = line.strip().split("@")
                    except ValueError:
                        invalid.write(line)
                    else:
                        if domain in domains:
                            out.write(line)
                        if counter % 100000 == 0:
                            print "Processed {0} records".format(counter)
    
    P.S. Заодно, если не сложно - отпишите пожалуйста, сколько времени заняла работа скрипта (Если будете использовать).
    P.P.S. После установки Python вышеприведенный код сохранить в файл "parse.py" и запустить двойным щелчком на нем. В консольном окне ввести имя файла с БД и нажать "ENTER"
     
    #7 login999, 28 Jun 2012
    Last edited: 28 Jun 2012
  8. crymore

    crymore Member

    Joined:
    12 Oct 2010
    Messages:
    0
    Likes Received:
    26
    Reputations:
    1

    Юзал этот скрипт когда. он ОЧЕНЬ медленный..имхо однопоток=/
     
  9. trolex

    trolex Well-Known Member

    Joined:
    6 Dec 2009
    Messages:
    592
    Likes Received:
    1,392
    Reputations:
    6
    crymore
    братюнь, есть такой скриптик у меня, скинь мне файлик в личку, я отберу и результат тебе скину
     
  10. crymore

    crymore Member

    Joined:
    12 Oct 2010
    Messages:
    0
    Likes Received:
    26
    Reputations:
    1
    не актуально
     
Loading...