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

  • Автор темы Автор темы gelu4
  • Дата начала Дата начала

gelu4

Client
Регистрация
11.01.2015
Сообщения
171
Реакции
43
Баллы
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 строке, регуляркой проверяю страну и дальше сохраняю из этой строки нужные данные в эксель. Записей может быть несколько сотен тысяч или даже миллионов.

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

Прописываете что то вроде такого:

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

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