Обрботка результатов парсинга. Подскажите алгоритм

gelu4

Client
Регистрация
11.01.2015
Сообщения
166
Благодарностей
42
Баллы
28
Пишу парсер для Одноклассников. За раз получаю 100 результатов такого вида
<uid>123456789</uid><first_name>Имя</first_name><last_name>Фамилия</last_name><gender>female</gender><location><city>Москва</city><country>RUSSIAN_FEDERATION</country><country_code>RU</country_code><country_name>Россия</country_name></location>

<uid>5987654321</uid><first_name>Имя</first_name><last_name>Фамилия</last_name><gender>female</gender><location><city>Pirmasens</city><country>GERMANY</country><country_code>DE</country_code><country_name>Германия</country_name></location>

Нужно из этих записей выбрать те, где страна например Россия. Закидаю записи в список, потом беру по 1 строке, регуляркой проверяю страну и дальше сохраняю из этой строки нужные данные в эксель. Записей может быть несколько сотен тысяч или даже миллионов.

Собственно вопрос, можно ли делать это как-то быстрее?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
1. В самих одноклассниках можно выставить нужные фильтры, чтобы выдавало ту страну, которая нужна.
2. Если установить фильтры не получается, можно через регулярку прописать, что в строке должны быть определённые значения (например страна).
3. Можно удалить из списка все значения, которые не содержат нужных значения. Операция над списками - удалить строки не содержащие текст - тут указываем нужные данные.
 
  • Спасибо
Реакции: gelu4

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
901
Баллы
113
не думаю что обработка нескольких миллионов займет больше пары секунд
 

gelu4

Client
Регистрация
11.01.2015
Сообщения
166
Благодарностей
42
Баллы
28
1. В самих одноклассниках можно выставить нужные фильтры, чтобы выдавало ту страну, которая нужна.
2. Если установить фильтры не получается, можно через регулярку прописать, что в строке должны быть определённые значения (например страна).
3. Можно удалить из списка все значения, которые не содержат нужных значения. Операция над списками - удалить строки не содержащие текст - тут указываем нужные данные.
Паршу людей из группы, там нет нужных фильтров. По поводу регулярки не понял, можно пример?
За 3й пункт отдельное спасибо. Даже не заметил такой функции. Очень помогли!
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 451
Благодарностей
1 885
Баллы
113
Паршу людей из группы, там нет нужных фильтров. По поводу регулярки не понял, можно пример?
За 3й пункт отдельное спасибо. Даже не заметил такой функции. Очень помогли!
Прописываете что то вроде такого:

Код:
(?<=что идёт перед текстом).*?страна.*?(?=что идёт после искомого текста)
Такая регулярка конечно будет достаточно сложной для обработки, наверное проще будет потом из списка удалить лишнее.
 
Регистрация
09.11.2015
Сообщения
264
Благодарностей
10
Баллы
18
Скажите а как в списке убрать лишнее. В списке есть несколько результатов, например "users":[313088703. Как убрать "users":[ подскажите пожалуйста.
 

zortexx

Client
Регистрация
19.09.2011
Сообщения
2 520
Благодарностей
1 226
Баллы
113
Регистрация
09.11.2015
Сообщения
264
Благодарностей
10
Баллы
18
Имеется ввиду экшн обработки текста? Если да, то как с помощью него произвести замену в списке?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
вообще правильнее было бы сделать так, чтобы эти данные вообще в списке не появлялись)
Ну а если они там есть, то можно в цикле брать по порядку все строки с удалением , чистить их и добавлять обратно в новый список.
 
Регистрация
09.11.2015
Сообщения
264
Благодарностей
10
Баллы
18
Ок. Спасибо.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)