Забегая наперед, сразу скажу, что все написанное ниже - исключительно для демонстрации возможностей А-парсера, и не предназначено для использования в каких-либо противоправных целях. База телефонов, полученная в итоге может быть задействованная в маркетинговых целях, но не должна быть использована для других действий, нарушающих законодательство или личное пространство владельцев номеров.
В данной статье будет рассмотрен пример парсинга сайта бесплатных обьявлений olx.ua. База будет содержать в основном номера украинских мобильных операторов. Данный ресурс был выбран из-за того, что он содержит довольно большую базу обьявлений с номерами телефонов, которые находятся в относительно открытом доступе.
Шаг первый - детальный анализ сайта.
Используя Инструменты разработчика из Google Chrome, анализируем сайт.
Как и на других подобных сайтах, здесь есть категории.
В каждой категории есть еще подкатегории, но нам достаточно и самих категорий. В каждой категории максимум может быть до 500 стр * 50 об = 25 000 обьявлений.
И в каждом обьявлении теоретически может быть телефон, который скрыт, но при нажатии кнопки "Показать" он отображается.
Из этого определяем порядок действий. Сначала нужно получить ссылки на каждую подкатегорию. Потом нужно получить ссылки на каждое обьявление из каждой подкатегории. И потом в каждом обьявлении спарсить нужную информацию, включая телефон.
С получением ссылок проблем не должно быть. Равно как и с парсингом информации из обьявлений. Кроме телефона, ведь он скрыт. Чтобы его как-то получить, воспользуемся возможностями Chrome, и посмотрим как происходит показ телефона.
На скрине выше мы видим, что есть некий скрипт, который, используя ID обьявления из ссылки, возвращает номер телефона в JSON. Скажу сразу, что телефонов может быть несколько, и тогда в ответе будет массив.
Ну вроде все что нужно у нас есть, приступим к непосредственно парсингу.
Шаг второй - парсинг.
Как мы выше определили, нужно получить список ссылок на категории. Для этого воспользуемся парсером
HTML::LinkExtractor.
Примечание: на данном сайте используется проверка User agent, есть редиректы и много поддоменов. Для того чтобы это все учесть, используем настройки как на скрине выше. В результат выводим только ссылки.
В полученном файле вручную, с помощью любого текстового редактора удаляем ненужные ссылки и оставляем только ссылки на категории. Получаем вот такой список:
Примечание: настройки аналогичны первому заданию.
После окончания работы второго задания, мы получили файл из ссылками на обьявления. Теперь нужно спарсить телефоны и другую информацию.
Примечание: для парсинга дважды используется парсер
Net::HTTP. Первый получает номер телефона, второй - всю остальную информацию. Для фильтрации и вывода информации в нужном виде используем ряд Конструкторов результатов, фильтры и возможности шаблонизатора Template Toolkit.
Шаг третий - обработка результата.
На выходе мы получим файл с нужной информацией, которая разделена точкой с запятой. Телефоны в свою очередь разделены символом |
В данном примере в файл выводилась следующая информация:
Примечание: у меня получился файл на 1,5М строк. Как оказалось, ни один из испробованных мною табличных процессоров не смог открыть такой файл. Поэтому пришлось разбивать его на несколько меньших.
Результат.
Ниже можно скачать файл - результат данной статьи. Он прилично обработан, удалены "мусорные" результаты, а также оставлены только телефоны, имена, города и категории товаров (так сказать, сфера интереса). Он пересохранен в формат xlsx, на 2 страницы.
Скачать
P.S. Вся вышеописанная работа заняла около 10 часов + около часа на очистку конечного результата.
Все параметры и даже логику вышеописанного можно менять, тем самым увеличивая или уменьшая конечный результат. Также можно задействовать еще больше фильтров и конструкторов, чтобы уменьшить кол-во мусора в итоговом файле.
В данной статье будет рассмотрен пример парсинга сайта бесплатных обьявлений olx.ua. База будет содержать в основном номера украинских мобильных операторов. Данный ресурс был выбран из-за того, что он содержит довольно большую базу обьявлений с номерами телефонов, которые находятся в относительно открытом доступе.
Шаг первый - детальный анализ сайта.
Используя Инструменты разработчика из Google Chrome, анализируем сайт.
Как и на других подобных сайтах, здесь есть категории.
В каждой категории есть еще подкатегории, но нам достаточно и самих категорий. В каждой категории максимум может быть до 500 стр * 50 об = 25 000 обьявлений.
И в каждом обьявлении теоретически может быть телефон, который скрыт, но при нажатии кнопки "Показать" он отображается.
Из этого определяем порядок действий. Сначала нужно получить ссылки на каждую подкатегорию. Потом нужно получить ссылки на каждое обьявление из каждой подкатегории. И потом в каждом обьявлении спарсить нужную информацию, включая телефон.
С получением ссылок проблем не должно быть. Равно как и с парсингом информации из обьявлений. Кроме телефона, ведь он скрыт. Чтобы его как-то получить, воспользуемся возможностями Chrome, и посмотрим как происходит показ телефона.
На скрине выше мы видим, что есть некий скрипт, который, используя ID обьявления из ссылки, возвращает номер телефона в JSON. Скажу сразу, что телефонов может быть несколько, и тогда в ответе будет массив.
Ну вроде все что нужно у нас есть, приступим к непосредственно парсингу.
Шаг второй - парсинг.
Как мы выше определили, нужно получить список ссылок на категории. Для этого воспользуемся парсером
HTML::LinkExtractor.
Код:
eyJwcmVzZXQiOiJkZWZhdWx0IiwidmFsdWUiOnsicHJlc2V0IjoiZGVmYXVsdCIs
InBhcnNlcnMiOltbIkhUTUw6OkxpbmtFeHRyYWN0b3IiLCJkZWZhdWx0Iix7InR5
cGUiOiJvdmVycmlkZSIsImlkIjoicmVjdXJzZSIsInZhbHVlIjoiMiJ9LHsidHlw
ZSI6Im92ZXJyaWRlIiwiaWQiOiJzdWJEb21haW5zIiwidmFsdWUiOnRydWV9LHsi
dHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJ1c2VyLWFnZW50IiwidmFsdWUiOiIkdG9v
bHMudWEucmFuZG9tKCkifSx7InR5cGUiOiJvdmVycmlkZSIsImlkIjoiZm9ybWF0
cmVzdWx0IiwidmFsdWUiOiIkaW50bGlua3MuZm9ybWF0KCckbGlua1xcbicpIn1d
XSwicmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRvIjoi
ZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6Ik9MWC9saW5rcy50eHQiLCJhZGRpdGlv
bmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJzdHJpbmciLCJxdWVyeUZv
cm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWls
ZWRRdWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25zIjp7Im9uQWxsTGV2ZWxz
IjpmYWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0b3IiOmZhbHNlfSwicmVz
dWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0sImRvTG9nIjoibm8iLCJr
ZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFsc2UsInJlc3VsdHNQcmVw
ZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5QnVpbGRlcnMiOltdLCJy
ZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlkZXMiOltdfX0=
В полученном файле вручную, с помощью любого текстового редактора удаляем ненужные ссылки и оставляем только ссылки на категории. Получаем вот такой список:
Далее парсим из полученных ссылок все ссылки на обьявления. Не забываем, что в каждой категории может быть до 500 страниц, поэтому используем макрос подстановок. Также включаем уникализацию, чтобы избежать повторов и фильтруем только нужные ссылки.
http://olx.ua/detskiy-mir/detskaya-mebel/
http://olx.ua/detskiy-mir/detskaya-obuv/
http://olx.ua/detskiy-mir/detskaya-odezhda/
http://olx.ua/detskiy-mir/detskie-avtokresla/
http://olx.ua/detskiy-mir/detskie-kolyaski/
http://olx.ua/detskiy-mir/detskiy-transport/
http://olx.ua/detskiy-mir/igrushki/
http://olx.ua/detskiy-mir/kormlenie/
http://olx.ua/detskiy-mir/maincategories/
http://olx.ua/detskiy-mir/prochie-detskie-tovary/
http://olx.ua/detskiy-mir/tovary-dlya-shkolnikov/
http://olx.ua/dom-i-sad/hozyaystvennyy-inventar/
http://olx.ua/dom-i-sad/instrumenty/
http://olx.ua/dom-i-sad/kantstovary-rashodnye-materialy/
http://olx.ua/dom-i-sad/komnatnye-rasteniya/
http://olx.ua/dom-i-sad/mebel/
http://olx.ua/dom-i-sad/posuda-kuhonnaya-utvar/
http://olx.ua/dom-i-sad/predmety-interera/
http://olx.ua/dom-i-sad/prochie-tovary-dlya-doma/
http://olx.ua/dom-i-sad/produkty-pitaniya-napitki/
http://olx.ua/dom-i-sad/sad-ogorod/
http://olx.ua/dom-i-sad/sadovyy-inventar/
http://olx.ua/dom-i-sad/stroitelstvo-remont/
http://olx.ua/elektronika/aksessuary-i-komplektuyuschie/
http://olx.ua/elektronika/audiotehnika/
http://olx.ua/elektronika/foto-video/
http://olx.ua/elektronika/igry-i-igrovye-pristavki/
http://olx.ua/elektronika/individualnyy-uhod/
http://olx.ua/elektronika/klimaticheskoe-oborudovanie/
http://olx.ua/elektronika/kompyutery/
http://olx.ua/elektronika/prochaja-electronika/
http://olx.ua/elektronika/tehnika-dlya-doma/
http://olx.ua/elektronika/tehnika-dlya-kuhni/
http://olx.ua/elektronika/telefony/
http://olx.ua/elektronika/tv-videotehnika/
http://olx.ua/hobbi-otdyh-i-sport/antikvariat-kollektsii/
http://olx.ua/hobbi-otdyh-i-sport/bilety/
http://olx.ua/hobbi-otdyh-i-sport/cd-dvd-plastinki/
http://olx.ua/hobbi-otdyh-i-sport/drugoe/
http://olx.ua/hobbi-otdyh-i-sport/knigi-zhurnaly/
http://olx.ua/hobbi-otdyh-i-sport/muzykalnye-instrumenty/
http://olx.ua/hobbi-otdyh-i-sport/poisk-grupp-muzykantov/
http://olx.ua/hobbi-otdyh-i-sport/poisk-poputchikov/
http://olx.ua/hobbi-otdyh-i-sport/sport-otdyh/
http://olx.ua/moda-i-stil/aksessuary/
http://olx.ua/moda-i-stil/dlya-svadby/
http://olx.ua/moda-i-stil/krasota-zdorove/
http://olx.ua/moda-i-stil/moda-raznoe/
http://olx.ua/moda-i-stil/naruchnye-chasy/
http://olx.ua/moda-i-stil/odezhda/
http://olx.ua/moda-i-stil/podarki/
http://olx.ua/nedvizhimost/arenda-domov/
http://olx.ua/nedvizhimost/arenda-garazhey-stoyanok/
http://olx.ua/nedvizhimost/arenda-komnat/
http://olx.ua/nedvizhimost/arenda-kvartir/
http://olx.ua/nedvizhimost/arenda-pomescheniy/
http://olx.ua/nedvizhimost/arenda-zemli/
http://olx.ua/nedvizhimost/ischu-kompanona/
http://olx.ua/nedvizhimost/obmen-nedvizhimosti/
http://olx.ua/nedvizhimost/prochaja-nedvizimost/
http://olx.ua/nedvizhimost/prodazha-domov/
http://olx.ua/nedvizhimost/prodazha-garazhey-stoyanok/
http://olx.ua/nedvizhimost/prodazha-komnat/
http://olx.ua/nedvizhimost/prodazha-kvartir/
http://olx.ua/nedvizhimost/prodazha-pomescheniy/
http://olx.ua/nedvizhimost/prodazha-zemli/
http://olx.ua/obmen-barter/
http://olx.ua/otdam-darom/
http://olx.ua/rabota/bary-restorany-razvlecheniya/
http://olx.ua/rabota/cekretariat-aho/
http://olx.ua/rabota/chastichnaya-zanyatost/
http://olx.ua/rabota/domashniy-personal/
http://olx.ua/rabota/drugie-sfery-zanyatiy/
http://olx.ua/rabota/it-telekom-kompyutery/
http://olx.ua/rabota/krasota-fitnes-sport/
http://olx.ua/rabota/kultura-iskusstvo/
http://olx.ua/rabota/marketing-reklama-dizayn/
http://olx.ua/rabota/meditsina-farmatsiya/
http://olx.ua/rabota/nachalo-karery-studenty/
http://olx.ua/rabota/nedvizhimost/
http://olx.ua/rabota/obrazovanie/
http://olx.ua/rabota/ohrana-bezopasnost/
http://olx.ua/rabota/proizvodstvo-energetika/
http://olx.ua/rabota/roznichnaya-torgovlya-prodazhi/
http://olx.ua/rabota/servis-i-byt/
http://olx.ua/rabota/stroitelstvo/
http://olx.ua/rabota/transport-logistika/
http://olx.ua/rabota/turizm-otdyh-razvlecheniya/
http://olx.ua/rabota/yurisprudentsiya-i-buhgalteriya/
http://olx.ua/transport/avtobusy/
http://olx.ua/transport/drugoy-transport/
http://olx.ua/transport/gruzovye-avtomobili/
http://olx.ua/transport/legkovye-avtomobili/
http://olx.ua/transport/moto/
http://olx.ua/transport/pritsepy/
http://olx.ua/transport/selhoztehnika/
http://olx.ua/transport/spetstehnika/
http://olx.ua/transport/vodnyy-transport/
http://olx.ua/transport/vozdushnyy-transport/
http://olx.ua/transport/zapchasti-aksessuary/
http://olx.ua/uslugi/avto-moto-uslugi/
http://olx.ua/uslugi/finansovye-uslugi/
http://olx.ua/uslugi/krasota-zdorove/
http://olx.ua/uslugi/nyani-sidelki/
http://olx.ua/uslugi/oborudovanie/
http://olx.ua/uslugi/obrazovanie/
http://olx.ua/uslugi/obsluzhivanie-remont-tehniki/
http://olx.ua/uslugi/perevozki-arenda-transporta/
http://olx.ua/uslugi/prochie-uslugi/
http://olx.ua/uslugi/prodazha-biznesa/
http://olx.ua/uslugi/prokat-tovarov/
http://olx.ua/uslugi/razvlechenie-foto-video/
http://olx.ua/uslugi/reklama-marketing-pr/
http://olx.ua/uslugi/setevoy-marketing/
http://olx.ua/uslugi/stroitelstvo-otdelka-remont/
http://olx.ua/uslugi/syre-materialy/
http://olx.ua/uslugi/turizm-immigratsiya/
http://olx.ua/uslugi/uslugi-dlya-zhivotnyh/
http://olx.ua/uslugi/uslugi-perevodchikov-nabor-teksta/
http://olx.ua/uslugi/yuridicheskie-uslugi/
http://olx.ua/zhivotnye/akvariumnye-rybki/
http://olx.ua/zhivotnye/byuro-nahodok/
http://olx.ua/zhivotnye/drugie-zhivotnye/
http://olx.ua/zhivotnye/gryzuny/
http://olx.ua/zhivotnye/koshki/
http://olx.ua/zhivotnye/ptitsy/
http://olx.ua/zhivotnye/reptilii/
http://olx.ua/zhivotnye/selskohozyaystvennye-zhivotnye/
http://olx.ua/zhivotnye/sobaki/
http://olx.ua/zhivotnye/tovary-dlya-zhivotnyh/
http://olx.ua/zhivotnye/vyazka/
http://olx.ua/zhivotnye/zhivotnye-darom/
Код:
eyJwcmVzZXQiOiJvbHgiLCJ2YWx1ZSI6eyJwcmVzZXQiOiJvbHgiLCJwYXJzZXJz
IjpbWyJIVE1MOjpMaW5rRXh0cmFjdG9yIiwiZGVmYXVsdCIseyJ0eXBlIjoib3Zl
cnJpZGUiLCJpZCI6InN1YkRvbWFpbnMiLCJ2YWx1ZSI6dHJ1ZX0seyJ0eXBlIjoi
b3ZlcnJpZGUiLCJpZCI6ImZvcm1hdHJlc3VsdCIsInZhbHVlIjoiJGludGxpbmtz
LmZvcm1hdCgnJGxpbmtcXG4nKSJ9LHsidHlwZSI6ImZpbHRlciIsInJlc3VsdCI6
WyJpbnRsaW5rcyIsImxpbmsiXSwiZmlsdGVyVHlwZSI6ImNvbnRhaW4iLCJ2YWx1
ZSI6Im9ieWF2bGVuaWUiLCJvcHRpb24iOiJzZW5zIn0seyJ0eXBlIjoib3ZlcnJp
ZGUiLCJpZCI6InVzZXItYWdlbnQiLCJ2YWx1ZSI6IiR0b29scy51YS5yYW5kb20o
KSJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJyZWN1cnNlIiwidmFsdWUiOiIy
In1dXSwicmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRzU2F2ZVRv
IjoiZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6Ik9MWC9saW5rcy50eHQiLCJhZGRp
dGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJzdHJpbmciLCJxdWVy
eUZvcm1hdCI6WyIkcXVlcnk/cGFnZT17bnVtOjE6NTAwfSJdLCJ1bmlxdWVRdWVy
aWVzIjpmYWxzZSwic2F2ZUZhaWxlZFF1ZXJpZXMiOnRydWUsIml0ZXJhdG9yT3B0
aW9ucyI6eyJvbkFsbExldmVscyI6ZmFsc2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0
ZXJhdG9yIjpmYWxzZX0sInJlc3VsdHNPcHRpb25zIjp7Im92ZXJ3cml0ZSI6dHJ1
ZX0sImRvTG9nIjoibm8iLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6
ZmFsc2UsInJlc3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1
ZXJ5QnVpbGRlcnMiOltdLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVy
cmlkZXMiOltdfX0=
После окончания работы второго задания, мы получили файл из ссылками на обьявления. Теперь нужно спарсить телефоны и другую информацию.
Код:
eyJwcmVzZXQiOiJvbHggLSAyIiwidmFsdWUiOnsicHJlc2V0Ijoib2x4IC0gMiIs
InBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsidHlwZSI6Im92ZXJy
aWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVlIjoiaHR0cDovL29seC51YS9h
amF4L21pc2MvY29udGFjdC9waG9uZS8kcXVlcnkuaWQvIn0seyJ0eXBlIjoib3Zl
cnJpZGUiLCJpZCI6ImZvcm1hdHJlc3VsdCIsInZhbHVlIjoiWyUgSUYgbnVtLjAu
dGVsMSA9PSAnbm9uZScgJV0kbnVtLmZvcm1hdCgnJHRlbDJ8JylbJSBFTFNFICVd
JG51bS5mb3JtYXQoJyR0ZWwxfCcpWyUgRU5EICVdIn0seyJ0eXBlIjoiY3VzdG9t
UmVzdWx0IiwicmVzdWx0IjoiZGF0YSIsInJlZ2V4IjoiXCJ2YWx1ZVwiOlwiKC4r
P1xcZClcIn18XCI+KC4rPyk8XFxcXFxcLyIsInJlZ2V4VHlwZSI6ImciLCJyZXN1
bHRUeXBlIjoiYXJyYXkiLCJhcnJheU5hbWUiOiJudW0iLCJyZXN1bHRzIjpbInRl
bDEiLCJ0ZWwyIl19LHsidHlwZSI6ImZpbHRlciIsInJlc3VsdCI6ImRhdGEiLCJm
aWx0ZXJUeXBlIjoibm90Y29udGFpbiIsInZhbHVlIjoiXHUwNDNkXHUwNDM1IFx1
MDQzZFx1MDQzMFx1MDQzOVx1MDQzNFx1MDQzNVx1MDQzZFx1MDQzMCIsIm9wdGlv
biI6InNlbnMifV0sWyJOZXQ6OkhUVFAiLCJkZWZhdWx0Iix7InR5cGUiOiJjdXN0
b21SZXN1bHQiLCJyZXN1bHQiOiJkYXRhIiwicmVnZXgiOiJicmt3b3JkIGxoZWln
aHQyOC4rP1xccysoLis/KVxccys8IiwicmVnZXhUeXBlIjoicyIsInJlc3VsdFR5
cGUiOiJmbGF0IiwiYXJyYXlOYW1lIjoiIiwicmVzdWx0cyI6WyJ0aXRsZSJdfSx7
InR5cGUiOiJvdmVycmlkZSIsImlkIjoiZm9ybWF0cmVzdWx0IiwidmFsdWUiOiIk
bmFtZTskdGl0bGU7JHByaWNlOyRjaXR5OyRjYXRzLmZvcm1hdCgnJGNhdDsnKSJ9
LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJ1c2VyLWFnZW50IiwidmFsdWUiOiIk
dWEudG9vbHMucmFuZG9tKCkifSx7InR5cGUiOiJjdXN0b21SZXN1bHQiLCJyZXN1
bHQiOiJkYXRhIiwicmVnZXgiOiJjMmIgc21hbGxcIj5cXHMrKC4rPylcXHMrPCIs
InJlZ2V4VHlwZSI6InMiLCJyZXN1bHRUeXBlIjoiZmxhdCIsImFycmF5TmFtZSI6
IiIsInJlc3VsdHMiOlsiY2l0eSJdfSx7InR5cGUiOiJjdXN0b21SZXN1bHQiLCJy
ZXN1bHQiOiJkYXRhIiwicmVnZXgiOiJ4eHh4LWxhcmdlIG1hcmdpbnRvcDcgYmxv
Y2sgbm90LWFycmFuZ2VkXCI+KC4rPyk8IiwicmVnZXhUeXBlIjoicyIsInJlc3Vs
dFR5cGUiOiJmbGF0IiwiYXJyYXlOYW1lIjoiIiwicmVzdWx0cyI6WyJwcmljZSJd
fSx7InR5cGUiOiJjdXN0b21SZXN1bHQiLCJyZXN1bHQiOiJkYXRhIiwicmVnZXgi
OiJibG9jayBjb2xvci01IGJya3dvcmQgeHgtbGFyZ2VcIj4oLis/KTwiLCJyZWdl
eFR5cGUiOiJzIiwicmVzdWx0VHlwZSI6ImZsYXQiLCJhcnJheU5hbWUiOiIiLCJy
ZXN1bHRzIjpbIm5hbWUiXX0seyJ0eXBlIjoiY3VzdG9tUmVzdWx0IiwicmVzdWx0
IjoiZGF0YSIsInJlZ2V4IjoiJnJhcXVvOy4rP25vd3JhcFwiPjxzcGFuPiguKz8p
PFxcL3NwYW4+IiwicmVnZXhUeXBlIjoic2ciLCJyZXN1bHRUeXBlIjoiYXJyYXki
LCJhcnJheU5hbWUiOiJjYXRzIiwicmVzdWx0cyI6WyJjYXQiXX1dXSwicmVzdWx0
c0Zvcm1hdCI6IiRwMS5wcmVzZXQ7JHAyLnByZXNldFxcbiIsInJlc3VsdHNTYXZl
VG8iOiJmaWxlIiwicmVzdWx0c0ZpbGVOYW1lIjoiT0xYL2Jhc2UudHh0IiwiYWRk
aXRpb25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVlIjoibm8iLCJxdWVyeUZv
cm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2UsInNhdmVGYWls
ZWRRdWVyaWVzIjp0cnVlLCJpdGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMi
OmZhbHNlLCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2V9LCJyZXN1
bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOnRydWV9LCJkb0xvZyI6Im5vIiwia2Vl
cFVuaXF1ZSI6Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRzUHJlcGVu
ZCI6IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3Vy
Y2UiOiJxdWVyeSIsInR5cGUiOiJyZWdleCIsInJlZ2V4IjoiLUlEKC4rPylcXC4i
LCJyZWdleFR5cGUiOm51bGwsInRvIjpbImlkIl19XSwicmVzdWx0c0J1aWxkZXJz
IjpbeyJzb3VyY2UiOlswLFsibnVtIiwidGVsMSJdXSwidHlwZSI6InJlZ2V4UmVw
bGFjZSIsImFycmF5IjoibnVtIiwicmVnZXgiOiIgfC18XFwpfFxcKCIsInJlZ2V4
VHlwZSI6ImciLCJyZXBsYWNlIjoiIiwidG8iOiJ0ZWwxIn0seyJzb3VyY2UiOlsw
LFsibnVtIiwidGVsMiJdXSwidHlwZSI6InJlZ2V4UmVwbGFjZSIsImFycmF5Ijoi
bnVtIiwicmVnZXgiOiIgfC18XFwpfFxcKCIsInJlZ2V4VHlwZSI6ImciLCJyZXBs
YWNlIjoiIiwidG8iOiJ0ZWwyIn0seyJzb3VyY2UiOlswLFsibnVtIiwidGVsMSJd
XSwidHlwZSI6InJlZ2V4UmVwbGFjZSIsImFycmF5IjoibnVtIiwicmVnZXgiOiJe
MHxeMzgwIiwicmVnZXhUeXBlIjpudWxsLCJyZXBsYWNlIjoiKzM4MCIsInRvIjoi
dGVsMSJ9LHsic291cmNlIjpbMCxbIm51bSIsInRlbDIiXV0sInR5cGUiOiJyZWdl
eFJlcGxhY2UiLCJhcnJheSI6Im51bSIsInJlZ2V4IjoiXjB8XjM4MHxeODAiLCJy
ZWdleFR5cGUiOm51bGwsInJlcGxhY2UiOiIrMzgwIiwidG8iOiJ0ZWwyIn0seyJz
b3VyY2UiOlsxLCJ0aXRsZSJdLCJ0eXBlIjoicmVtb3ZlSHRtbCIsInRvIjoidGl0
bGUifSx7InNvdXJjZSI6WzEsInRpdGxlIl0sInR5cGUiOiJkZWNvZGVIdG1sIiwi
dG8iOiJ0aXRsZSJ9LHsic291cmNlIjpbMSwidGl0bGUiXSwidHlwZSI6InJlZ2V4
UmVwbGFjZSIsInJlZ2V4IjoiXHUwNDIxXHUwNDQwXHUwNDNlXHUwNDQ3XHUwNDNk
XHUwNDNlXFxzKyIsInJlZ2V4VHlwZSI6InMiLCJyZXBsYWNlIjoiIiwidG8iOiJ0
aXRsZSJ9XSwiY29uZmlnT3ZlcnJpZGVzIjpbXX19
Net::HTTP. Первый получает номер телефона, второй - всю остальную информацию. Для фильтрации и вывода информации в нужном виде используем ряд Конструкторов результатов, фильтры и возможности шаблонизатора Template Toolkit.Шаг третий - обработка результата.
На выходе мы получим файл с нужной информацией, которая разделена точкой с запятой. Телефоны в свою очередь разделены символом |
В данном примере в файл выводилась следующая информация:
Рекомендую полученный файл обработать в Excell или другом табличном процессоре, т.к. там скорее всего будет содержаться еще немало ненужных, пустых или некорректных данных.телефон1|телефон2|...|;имя пользователя;заголовок обьявления;цена;город;категории
Примечание: у меня получился файл на 1,5М строк. Как оказалось, ни один из испробованных мною табличных процессоров не смог открыть такой файл. Поэтому пришлось разбивать его на несколько меньших.
Результат.
Ниже можно скачать файл - результат данной статьи. Он прилично обработан, удалены "мусорные" результаты, а также оставлены только телефоны, имена, города и категории товаров (так сказать, сфера интереса). Он пересохранен в формат xlsx, на 2 страницы.
Скачать
P.S. Вся вышеописанная работа заняла около 10 часов + около часа на очистку конечного результата.