GrabLab.org

Мы ежемесячно парсим базу поисковых запросов, которую можно купить всего за 50 баксов. На данный момент в базе 233 миллиона ключевых  слов, размер файла составляет 12 гигабайт. У покупателей возникает вопрос: как сделать выборку по интересующему запросу из такого большого файла? Рассмотрим решения для двух популярных операционных систем: linx и windows.

Выборка из файла в linux

Тут всё довольно просто. Открываем консоль, заходим в каталог где лежит файл с запросами и выполняем команду:

grep -E "скачать.*windows" keydb.txt > out.txt

Команда будет работать несколько десятков секунд, после чего вы получите интересующие вас запросв в файле out.txt. Обратите внимание, что мы вызываем команду grep с аргументом -E, который означает, что надо воспринимать строку "скачать.*windows" как регулярное выражение.

Выборка из файла в windows

Здесь всё сложнее. С ходу мне не удалось найти рабочее решение. Существуют порты linux-утилит под windows, и grep даже заработал и искал запросы, но увы только запросы без русских символов. С русскими симолами он искать что-либо отказывался. Это связано с тем, что консоль в windows имеет кодировку cp866, в то время, как данные в файле находятся в кодировке utf-8. Мне удалось, нагуглить команду которая меняет кодировку консоли на utf-8:

chcp 65001

Однако после её выполнения grep по прежнему не работает с русскими запросами.

Рабочим решением оказалось использование windows powershell. В windows 7 этот софт является втроенным в дистрибутив, а вот в windows xp придётся ставить его отдельно. Скачать можно отсюда http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=30125A46-B97C-4704-AA10-605E809D5933 Если у вас не стоит .net framework SP1, то предварительно поставьте его, а потом уже powershell.

Далее открываем powershell, меняем директорию на ту, где лежит файл keydb.txt и запускаем вот такую хитрую команду:

Select-String "скачать.*windows" .\keydb.txt | Foreach-Object {$_.Line} > out.txt

После отработки команды нужная выборка будет в файле out.xt

UPD: Немного обновил команду, теперь она корректно обрабатывает строки с двоеточием.


Контактные данные

Email лаборатории
brobiz.inc@gmail.com
Alex
skype: etiquette_team
icq: 466204552

Стоимость услуг

Парсинг данных от 200$
Мы запускаем скрипт на своих серверах. Вы получаете только данные в удобном для вас формате.