Ищу Парсер номеров телефонов

Тема в разделе "Софт", создана пользователем IEVteam, 29 июл 2010.

  1. IEVteam

    IEVteam

    Регистр.:
    9 июн 2008
    Сообщения:
    152
    Симпатии:
    185
    Всем привет! :)

    Нужен скрипт или приложение для парсинга (сбора) номеров телефонов с сайтов. Многие скажут, что подойдет Advanced Email Extractor, но нет версии 3 с лекарством, т.к. начиная с версии 3.1.4844 изменена логика работы и настроек парсера номеров телефонов и факсов. В общем жду рекомендаций на счет этого дела.

    Первое наблюдение и решение:
    Поставил EmEx v3.1 build 6755 - настроил фильтр, запустил - через 5 минут набрала с одного портала более 3-х тысяч номеров и показания растут. Надеюсь, что для бесплатной версии этого приложения удастся собрать большое кол-во номеров. По результатам напишу сколько удалось собрать. Кроме этого цена на эту программу адекватная, но все равно хочется на халяву. Может у кого есть лекарство?

    Обзор (вывод) работы с EmEx:
    Прошло время, в базе уже 17 тысяч отборных мобильных номеров, которые принадлежат определенному городу. На эти номера будет проводится SMS рассылка. Естественно мы учитываем, что на 17 тысяч номеров рассылка должна проводится равномерно со скоростью не более 1 тысячи сообщений в час, а это 17-18 часов. В данный момент текущая версия использованной программы 3.1.6740 от 14 июля 2010, при этом незарегистрированная версия имеет одно единственное ограничение - вы не можете сохранять проект и результаты поиска. Во всем остальном она функционирует так же как и зарегистрированная. Проект сохранить не можем и функция экспорта также не работает - блин...

    Вопрос остался открытый! У кого есть лекарство (ключ) для EmEx v3 или аналогичный парсер?


    Спустя немного времени:
    Поставил Web Data Extractor v7.1 - он тоже может собирать номера телефонов, для этого в настройках проекта поставить галочку на против поля Phone и в закладке опции выставить фильтр префикса номеров. С первого раза не получилось, после комбинаций с фильтром - получилось, при этом Web Data Extractor собрал с того же ресурса не 17 тысяч отборных мобильных номеров а более 30 тысяч и непонятных - завис намертво. В общем скорее всего вся причина в фильтре. Сейчас пытаюсь прийти к лучшему показателю...

    А также:
    Установил Link Web Extractor v2.5 Build 524 - тоже геморойная приложение по сбору номеров телефонов, да настраивается, но прогнав сайт - собрала немного номеров, которые нужно править под правильную форму вручную, а это недопустимо при большом объеме.

    Кроме этого:
    Поставил интересную триальную программу Email, Phone and Fax Extractor v3.0 - под нее есть патч, но он заражен, поэтому пока пробую триальную версию. Пока собирает нормально, но пишет отдельно префикс от номера - в принципе если нормальный экспорт по колонкам, то совместить это будет без проблем. Спустя 1 час понял, что программа полый оцтой!

    ВОПРОС ЕЩЕ АКТУАЛЕН!
     
    E-Rix, Refcat и Subbota нравится это.
  2. IEVteam

    IEVteam

    Регистр.:
    9 июн 2008
    Сообщения:
    152
    Симпатии:
    185
    ... прошло время. Понял, что никто не поможет, поэтому взял PureBasic и написал программу, которая вытягивает из фалов скаченного сайта номера телефонов, например сайт, который скачен с помощью Teleport. Вот исходный код граббера:

    Код:
     Directory$ = "C:\site\"   ;путь к файлам
     fileout$="c:\out"+Str(Random(9999999999))+".txt"
     #EOL$ = Chr(13)+Chr(10)
     Procedure.s nahh(strok.s)
     ;Debug RemoveString("This is Art", "is") ; Will display "Th  Art"
     For i= 0 To 9
      strok.s = RemoveString(strok.s,Chr(i))
     Next i 
     For i= 11 To 12
      strok.s = RemoveString(strok.s,Chr(i))
     Next i 
      For i= 14 To 47
      strok.s = RemoveString(strok.s,Chr(i))
     Next i
      For i= 58 To 255
      strok.s = RemoveString(strok.s,Chr(i))
     Next i
     ProcedureReturn strok.s
     EndProcedure
     Procedure.s a1(redi$,che$)
    kolvo=0
    redi2$=""
    kolvo=CountString(redi$, che$)
    If kolvo>1 
     Debug "количество повторов "+Str(kolvo )
    EndIf
    pos =0
    For j=1 To kolvo 
     pos=FindString(redi$,che$,pos+1)
          If pos<>0
           ;redi$=Right(redi$,Len(redi$)-pos+2)
           ;redi2$ =Left(REDI$,14) +#EOL$+redi2$
           REDI2$=Mid(redi$, pos ,15)+#EOL$+redi2$
          Else
             ProcedureReturn ""
          EndIf
      Next j
     ProcedureReturn nahh(REDI2$) 
     EndProcedure
      kilvofile=0
      If ExamineDirectory(0, Directory$, "*.*")  
        While NextDirectoryEntry(0)
          If DirectoryEntryType(0) = #PB_DirectoryEntry_File
            kilvofile=kilvofile+1
          EndIf
        Wend
        FinishDirectory(0)
      EndIf
        g=0
    If CreateFile(990, fileout$)         
      If ExamineDirectory(0, Directory$, "*.*")  
        While NextDirectoryEntry(0)
          If DirectoryEntryType(0) = #PB_DirectoryEntry_File
              file$=DirectoryEntryName(0)
              Debug "---------"+file$+"-----------"
              g=g+1
        If ReadFile(0, Directory$+file$)
        While Eof(0) = 0
          redi$=ReadString(0)
        b$=a1(redi$," 050-")
       If Len(b$)>3
         Debug b$
         WriteString(990,b$)
       EndIf
         b$= a1(redi$," 063-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
         b$= a1(redi$," 066-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
         b$= a1(redi$," 067-")
       If Len(b$)>3
         Debug b$
          WriteString( 990,b$)
       EndIf
         b$= a1(redi$," 068-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
         b$= a1(redi$," 093-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
         b$= a1(redi$," 095-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
         b$= a1(redi$," 096-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
        b$= a1(redi$," 097-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf 
        b$= a1(redi$," 098-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf 
         b$= a1(redi$," 099-")
       If Len(b$)>3
         Debug b$
          WriteString(990,b$)
       EndIf
        Wend
        CloseFile(0)
      Else
        MessageRequester("Information","Couldn't open the file!")
      EndIf
          EndIf
        Wend
        FinishDirectory(0)
      EndIf
     EndIf
     CloseFile(990)
    Но, нужен сортировщик, который удалит копии и отсортирует номера телефонов. Вот что получилось:

    Код:
    imia$="c:\out874500813.txt"
    imiaOUT$="c:\out-sort2.txt"
    #NbElements = 300000000
    Dim Array.s(#NbElements)
    k=0 
     If ReadFile(0, imia$)   
        While Eof(0) = 0           
          Array(k)= ReadString(0)      
          k=k+1
        Wend
        CloseFile(0)               
      Else
        MessageRequester("Information","Couldn't open the file!")
      EndIf
    For p=0 To k
      ;Debug Array(p)
    Next p
    SortArray(Array(), #PB_Sort_NoCase ,0,k)
    Debug "---------------------"
    For p=0 To k -1
    If Array(p)= Array(p+1)
    Array(p)="-"
    EndIf
    If Len(Array(p))>10
    Array(p)="+"
    EndIf
    Next p
    For p=0 To k
     ; Debug Array(p)
    Next p
      If CreateFile(10, imiaOUT$)         
       For p=0 To k
         If Len(Array(p))>9
          WriteStringN(10, Array(p))  
         EndIf
        Next p
        CloseFile(10)                      
      Else
        MessageRequester("Information","Can't create the file!")
      EndIf
    Все это работает хорошо - уже базу собрал более 50 тыс. номеров. Если есть вопросы - пишите в личку. Тема закрыта!
     
    E-Rix нравится это.
  3. ideal13

    ideal13 Писатель

    Регистр.:
    17 май 2010
    Сообщения:
    4
    Симпатии:
    0
    безумно интересно
     
  4. E-Rix

    E-Rix Постоялец

    Регистр.:
    16 янв 2009
    Сообщения:
    78
    Симпатии:
    35
    Привет, скажи пожалуйста, ты уже осуществил свою рассылку по 50.000 телефонам?
    Скажи, с законодательством проблемы были?
    Тут просто покумекал и прикинул, скажем сделаю парсер мобильных телефонов своего города, около 5000-10000 телефонов. Сделаю рассылку смс. И вот возникает вопрос, а с законом потом проблем не будет? Или как их можно избежать?
    Как решал данную проблему?
    Хотя уже в своем городе, сам получал раза 3 смс рассылку, без моего согласия(если знаешь как их можно наказать, тоже интересно)
     
  5. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.549
    Симпатии:
    1.431
    На одной из работ отправлял по 100-200 сообщений в день, на вопросы и претензии относительно рассылки отвечал, что ваш номер взят из открытых информационных источников и в таком случае рассылка рекламы не противоречит законодательству Украины. На сколько это правда не могу сказать, но на людей действовало...

    Для Росии есть интересный закон
    Ст. 18, ч.1: Распространение рекламы по сетям электросвязи, в том числе посредством использования телефонной, факсимильной, подвижной радиотелефонной связи, допускается только при условии предварительного согласия абонента или адресата на получение рекламы. При этом реклама признается распространенной без предварительного согласия абонента или адресата, если рекламораспространитель не докажет, что такое согласие было получено. Рекламораспространитель обязан немедленно прекратить распространение рекламы в адрес лица, обратившегося к нему с таким требованием.
    Как я понял отталкиваясь на него можно рассылать рекламу до 1й жалобы со стороны абонента.
     
  6. IEVteam

    IEVteam

    Регистр.:
    9 июн 2008
    Сообщения:
    152
    Симпатии:
    185
    Делаем SMS рассылку регулярно. На счету уже более 100 тысяч отправок. Юридически решили очень просто - публичный договор напечатали в газете, которую каждый гражданин обязан читать. В итоге если хотите жаловаться? Подавайте иск в суд, при этом Вы должны быть ознакомлены с этим договором. Самое интересное и полезное этот пункт:
    Да, были два звонка, мол Вы нарушили какие-то законодательные положения - ответ наш был прост: "Подавайте на нас в суд". Если же, кто-то и захочет поковырять информацию на Вас, чтоб дело передать в суд - ему понадобятся финансы и нервы, а это присущно только личности или группе личностей, которые заинтересованы в этом.
     
  7. E-Rix

    E-Rix Постоялец

    Регистр.:
    16 янв 2009
    Сообщения:
    78
    Симпатии:
    35
    Можно поподробнее? Не понятно, что эта за газета, которую гражданин обязан читать? Что меняет эта статья в газете?
    Сам проживаю в России. То есть по вашим словам выходит так, возьму базу мобильных номеров и разошлю сообщение около 100.000 пользователям и в итоге максимум что получу, административный штраф? и то, если кто-то подаст в суд?
    ---------- Post added at 14:37 ---------- Previous post was at 13:03 ----------
    и еще возник вопрос, а если я закажу отправку смс сообщения у кого-то, по его базе телефоных номеров. Ответственность за это кто будет нести, тот кто заказал рассылку или отправитель?
     
  8. IEVteam

    IEVteam

    Регистр.:
    9 июн 2008
    Сообщения:
    152
    Симпатии:
    185
    Весь прикол заключается в положении: "Кто отправитель?!"
    А юридически - это альфаимя, тоесть то-имя, которое отображается в заголовке SMS. Если будет номер, который ни кому не принадлежит, то и найти проблематично. Не знаю, как в России с этим - нужно читать законодательство, но знаю точно, что если будет договор на отправку SMS компанией, то по условиям договора они обязаны нести ответственность за это. Также хочу сказать, что если провайдер мобильной связи предлагает данную услугу, то считаю, что можно смело делать рассылку...
     
  9. E-Rix

    E-Rix Постоялец

    Регистр.:
    16 янв 2009
    Сообщения:
    78
    Симпатии:
    35
    Ну да, так можно кого-нить и подставить, ввел телефон своего не друга и отправил спам рассылку хотяб на 50.000 пользователей, вот потеха то будет. Только тут и есть другая сторона, если ты делаешь рекламу чего-то, сразу становится понятно кому эта рассылка была нужна.

    Возможно ли спарсить номера мобильных номеров с qiwi.ru ?
    Вот там самая актуальная и самая большая база мобильных номеров.
    Что скажешь IEVteam? правда это для России больше подходит
     
  10. dukei

    dukei Писатель

    Заблокирован
    Регистр.:
    8 авг 2008
    Сообщения:
    0
    Симпатии:
    0
    действительно прикольно