Здравствуйте, у меня стоит задача - получить карточки товара и подкатегорию, используя категории урлов - в которых эти товары находятся, Например : http://www.mlesna.ru/catalog/tseylonskiy_chernyiy_bayhovyiy_aromatizirovannyiy/ Подкатегории - " Набор (28) Ассорти (26) Клубника (19) Бергамот (18) К празднику (12) Яблоко (10) Смородина (9) Вишня (9) Персик и абрикос (7) Мята (7) Жасмин (7) Саусэп (6) Малина (6) Лимон (6) Клюква (6) Голубика (6) Ананас (6) Слива (5) Роза (5) Манго (5) Канадский клен (5) Ежевика (5) Апельсин (5) Яблоневый цвет (4) Цитрусовые (4) Мёд (4) Карамель (4) Ваниль (4) Шиповник (3) Тропические фрукты (3) Сливки (3) Пэшнфрукт (3) Папайя (3) Лайм (3) Киви (3) Дыня (3) Груша (3) Грейфрукт (3) Виноград (3) Банан (3) Черника (2) Ревень (2) Мандарин (2) Шоколад (1) Хризантема (1) Специи (1) Крыжовник (1) Корица (1) Кардамон (1) Имбирь (1) Гранат (1) Боярышник (1) Кокос (0) " То есть, парсер должен перейти в каждую подкатегорию и получить такие данные по каждому товару : Название Изображение Тип Артикул Упаковка Фасовка Описание Вес Стоимость Все эти данные находятся в <div class="goods"> на странице товара внутри div class=name div class=picture div class=info ( тут в таблице - тип, артикул, упаковка, фасовка) Тип: Значение Артикул : Значение Упаковка : Значение Фасовка : Значение Описание - на странице в теге <p> - который следует сразу же за дивом <div class="goods"> div class=weight div class=price Хотелось бы получить результат в таком виде : Набор;Чай черный ароматизированный «Spring Collection» (Весенняя Коллекция «8 Марта») в 8-ми холщовых мешочках;Тип: черный;Упаковка: деревянные коробки;Фасовка: байховый (рассыпной);Восемь видов цейлонского черного ароматизированного чая в холщовых мешочках в деревянной коробке с символикой "8 Марта".;200 гр; 1400руб Подсказали в чате, что мне надо написать регулярные выражения под каждый div http://a-parser.com/threads/1651/#post-4928 Допустим регулярка под див div class=name : <div class=\"name\">(.*?)</div> флаг s Но мне не понятно : 1. Как мне заставить парсер переходить в подкатегории 2. Как записывать в файл результатов название подкатегории 3. Как Парсить данные из таблицы div class=info ( тут в таблице - тип, артикул, упаковка, фасовка) Тип: Значение Артикул : Значение Упаковка : Значение Фасовка : Значение 4. Как сформировать файл результатов с этим всем 5. Как мне скачать изображение товара и сохранить целостность данных. То есть что бы изобаржение относилось именно к той строке данных - в файле результатов, за которым оно закреплено на основном сайте. помогите пожалуйста?!
Задачу можно решить с помощью 3-х заданий. 1) Парсим названия категорий и ссылки на них. Спойлер: Пресет Код: eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY2Mi8gLSBc dTA0M2ZcdTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDNh XHUwNDMwXHUwNDQyXHUwNDM1XHUwNDMzXHUwNDNlXHUwNDQwXHUwNDM4XHUwNDM5 IiwidmFsdWUiOnsicHJlc2V0IjoiaHR0cDovL2EtcGFyc2VyLmNvbS90aHJlYWRz LzE2NjIvIC0gXHUwNDNmXHUwNDMwXHUwNDQwXHUwNDQxXHUwNDM4XHUwNDNkXHUw NDMzIFx1MDQzYVx1MDQzMFx1MDQ0Mlx1MDQzNVx1MDQzM1x1MDQzZVx1MDQ0MFx1 MDQzOFx1MDQzOSIsInBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsi dHlwZSI6ImN1c3RvbVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6Ijxs aSBzdHlsZT1cImZsb2F0OiBsZWZ0OyBwYWRkaW5nOiAwcHg7IG1hcmdpbjogMHB4 XCI+Lis/PGEgaHJlZj1cIiguKz8pXCIuKz8+KC4rPykmLis/PFxcL2E+IiwicmVn ZXhUeXBlIjoiaXNnIiwicmVzdWx0VHlwZSI6ImFycmF5IiwiYXJyYXlOYW1lIjoi Y2F0ZWdvcnkiLCJyZXN1bHRzIjpbImxpbmsiLCJjYXQiXX0seyJ0eXBlIjoib3Zl cnJpZGUiLCJpZCI6InVzZXByb3h5IiwidmFsdWUiOmZhbHNlfV1dLCJyZXN1bHRz Rm9ybWF0IjoiJHAxLmNhdGVnb3J5LmZvcm1hdCgnJGNhdDtodHRwOi8vJHF1ZXJ5 LmRvbWFpbiRsaW5rP1NIT1dBTExfMj0xXFxuJykiLCJyZXN1bHRzU2F2ZVRvIjoi ZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6InRlYS9jYXRlZ29yeS50eHQiLCJhZGRp dGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJubyIsInF1ZXJ5Rm9y bWF0IjpbIiRxdWVyeSJdLCJ1bmlxdWVRdWVyaWVzIjpmYWxzZSwic2F2ZUZhaWxl ZFF1ZXJpZXMiOmZhbHNlLCJpdGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMi OmZhbHNlLCJxdWVyeUJ1aWxkZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2V9LCJyZXN1 bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwiZG9Mb2ciOiJkYiIsImtl ZXBVbmlxdWUiOiJObyIsIm1vcmVPcHRpb25zIjpmYWxzZSwicmVzdWx0c1ByZXBl bmQiOiIiLCJyZXN1bHRzQXBwZW5kIjoiIiwicXVlcnlCdWlsZGVycyI6W3sic291 cmNlIjoicXVlcnkiLCJ0eXBlIjoiZXh0cmFjdERvbWFpbiIsInRvIjoiZG9tYWlu In1dLCJyZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlkZXMiOltdfX0= 2) По полученной в 1-м шаге информации парсим ссылки на каждый отдельный товар, при этом также сохраняем название категории. Для этого в качестве файла запросов подставляем полученный в 1 шаге файл. Спойлер: Пресет Код: eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY2Mi8gLSBc dTA0M2ZcdTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDQx XHUwNDQxXHUwNDRiXHUwNDNiXHUwNDNlXHUwNDNhIFx1MDQzZFx1MDQzMCBcdTA0 NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIiLCJ2YWx1ZSI6eyJwcmVz ZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY2Mi8gLSBcdTA0M2Zc dTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDQxXHUwNDQx XHUwNDRiXHUwNDNiXHUwNDNlXHUwNDNhIFx1MDQzZFx1MDQzMCBcdTA0NDJcdTA0 M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0NGIiLCJwYXJzZXJzIjpbWyJOZXQ6OkhU VFAiLCJkZWZhdWx0Iix7InR5cGUiOiJvdmVycmlkZSIsImlkIjoidXNlcHJveHki LCJ2YWx1ZSI6ZmFsc2V9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZv cm1hdCIsInZhbHVlIjoiJHF1ZXJ5LmxpbmsifSx7InR5cGUiOiJjdXN0b21SZXN1 bHQiLCJyZXN1bHQiOiJkYXRhIiwicmVnZXgiOiI8ZGl2IGNsYXNzPVwiZ29vZHNc Ij4uKj88YSBocmVmPVwiKC4rPylcIj4iLCJyZWdleFR5cGUiOiJpc2ciLCJyZXN1 bHRUeXBlIjoiYXJyYXkiLCJhcnJheU5hbWUiOiJsaW5rcyIsInJlc3VsdHMiOlsi bGluayJdfV1dLCJyZXN1bHRzRm9ybWF0IjoiJHAxLmxpbmtzLmZvcm1hdCgnJHF1 ZXJ5LmNhdGVnb3J5O2h0dHA6Ly8kcXVlcnkuZG9tYWluJGxpbmtcXG4nKSIsInJl c3VsdHNTYXZlVG8iOiJmaWxlIiwicmVzdWx0c0ZpbGVOYW1lIjoidGVhL2xvdHMu dHh0IiwiYWRkaXRpb25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVlIjoibm8i LCJxdWVyeUZvcm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6ZmFsc2Us InNhdmVGYWlsZWRRdWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25zIjp7Im9u QWxsTGV2ZWxzIjpmYWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0b3IiOmZh bHNlfSwicmVzdWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0sImRvTG9n IjoiZGIiLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6ZmFsc2UsInJl c3VsdHNQcmVwZW5kIjoiIiwicmVzdWx0c0FwcGVuZCI6IiIsInF1ZXJ5QnVpbGRl cnMiOlt7InNvdXJjZSI6InF1ZXJ5IiwidHlwZSI6InN0cmluZ1NwbGl0Iiwic2Vw YXJhdG9yIjoiOyIsInRvIjpbImNhdGVnb3J5IiwibGluayJdfSx7InNvdXJjZSI6 ImxpbmsiLCJ0eXBlIjoiZXh0cmFjdERvbWFpbiIsInRvIjoiZG9tYWluIn1dLCJy ZXN1bHRzQnVpbGRlcnMiOltdLCJjb25maWdPdmVycmlkZXMiOltdfX0= 3) По полученным во 2-м шаге ссылкам с помощью регулярных выражений парсим информацию о каждом товаре. Для этого в качестве файла запросов подставляем полученный в 2-м шаге файл. Название категорий у нас уже есть из 2-го шага. Спойлер: Пресет Код: eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY2Mi8gLSBc dTA0M2ZcdTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDM4 XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNjXHUwNDMwXHUwNDQ2XHUwNDM4 XHUwNDM4IFx1MDQzZSBcdTA0NDJcdTA0M2VcdTA0MzJcdTA0MzBcdTA0NDBcdTA0 MzBcdTA0NDUiLCJ2YWx1ZSI6eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29t L3RocmVhZHMvMTY2Mi8gLSBcdTA0M2ZcdTA0MzBcdTA0NDBcdTA0NDFcdTA0Mzhc dTA0M2RcdTA0MzMgXHUwNDM4XHUwNDNkXHUwNDQ0XHUwNDNlXHUwNDQwXHUwNDNj XHUwNDMwXHUwNDQ2XHUwNDM4XHUwNDM4IFx1MDQzZSBcdTA0NDJcdTA0M2VcdTA0 MzJcdTA0MzBcdTA0NDBcdTA0MzBcdTA0NDUiLCJwYXJzZXJzIjpbWyJOZXQ6OkhU VFAiLCJkZWZhdWx0Iix7InR5cGUiOiJvdmVycmlkZSIsImlkIjoidXNlcHJveHki LCJ2YWx1ZSI6ZmFsc2V9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZv cm1hdCIsInZhbHVlIjoiJHF1ZXJ5LmxpbmsifSx7InR5cGUiOiJjdXN0b21SZXN1 bHQiLCJyZXN1bHQiOiJkYXRhIiwicmVnZXgiOiI8aDEgY2xhc3M9XCJuYW1lXCI+ KC4rPyk8XFwvaDE+IiwicmVnZXhUeXBlIjoiaXMiLCJyZXN1bHRUeXBlIjoiZmxh dCIsImFycmF5TmFtZSI6ImxpbmtzIiwicmVzdWx0cyI6WyJuYW1lIl19LHsidHlw ZSI6ImN1c3RvbVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6Ijx0cj48 dGQgY2xhc3M9XCJ0aF9yXCI+XHUwNDIyXHUwNDM4XHUwNDNmOjxcXC90ZD48dGQ+ KC4rPyk8XFwvdGQ+PFxcL3RyPiIsInJlZ2V4VHlwZSI6ImlzIiwicmVzdWx0VHlw ZSI6ImZsYXQiLCJhcnJheU5hbWUiOiIiLCJyZXN1bHRzIjpbInR5cGUiXX0seyJ0 eXBlIjoiY3VzdG9tUmVzdWx0IiwicmVzdWx0IjoiZGF0YSIsInJlZ2V4IjoiPHRy Pjx0ZCBjbGFzcz1cInRoX3JcIj5cdTA0MjNcdTA0M2ZcdTA0MzBcdTA0M2FcdTA0 M2VcdTA0MzJcdTA0M2FcdTA0MzA6PFxcL3RkPjx0ZD4oLis/KTxcXC90ZD48XFwv dHI+IiwicmVnZXhUeXBlIjoiaXMiLCJyZXN1bHRUeXBlIjoiZmxhdCIsImFycmF5 TmFtZSI6IiIsInJlc3VsdHMiOlsiYm94Il19LHsidHlwZSI6ImN1c3RvbVJlc3Vs dCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6Ijx0cj48dGQgY2xhc3M9XCJ0aF9y XCI+XHUwNDI0XHUwNDMwXHUwNDQxXHUwNDNlXHUwNDMyXHUwNDNhXHUwNDMwOjxc XC90ZD48dGQ+KC4rPyk8XFwvdGQ+PFxcL3RyPiIsInJlZ2V4VHlwZSI6ImlzIiwi cmVzdWx0VHlwZSI6ImZsYXQiLCJhcnJheU5hbWUiOiIiLCJyZXN1bHRzIjpbInBh Y2siXX0seyJ0eXBlIjoiY3VzdG9tUmVzdWx0IiwicmVzdWx0IjoiZGF0YSIsInJl Z2V4IjoiPHRhYmxlIGNsYXNzPVwiaW5mb1wiPi4rPzxwPiguKj8pPFxcL3A+Iiwi cmVnZXhUeXBlIjoiaXMiLCJyZXN1bHRUeXBlIjoiZmxhdCIsImFycmF5TmFtZSI6 IiIsInJlc3VsdHMiOlsiZGVzY3IiXX0seyJ0eXBlIjoiY3VzdG9tUmVzdWx0Iiwi cmVzdWx0IjoiZGF0YSIsInJlZ2V4IjoiPGRpdiBjbGFzcz1cIndlaWdodFwiPigu Kz8pPFxcL2Rpdj4iLCJyZWdleFR5cGUiOiJpcyIsInJlc3VsdFR5cGUiOiJmbGF0 IiwiYXJyYXlOYW1lIjoiIiwicmVzdWx0cyI6WyJ3ZWlnaHQiXX0seyJ0eXBlIjoi Y3VzdG9tUmVzdWx0IiwicmVzdWx0IjoiZGF0YSIsInJlZ2V4IjoiPGRpdiBjbGFz cz1cInByaWNlXCI+KC4rPyk8XFwvZGl2PiIsInJlZ2V4VHlwZSI6ImlzIiwicmVz dWx0VHlwZSI6ImZsYXQiLCJhcnJheU5hbWUiOiIiLCJyZXN1bHRzIjpbInByaWNl Il19LHsidHlwZSI6ImN1c3RvbVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdl eCI6IjxkaXYgY2xhc3M9XCJwaWN0dXJlXCI+Lis/PGltZyBzcmM9XCIoLis/KVwi IiwicmVnZXhUeXBlIjoiaXMiLCJyZXN1bHRUeXBlIjoiZmxhdCIsImFycmF5TmFt ZSI6IiIsInJlc3VsdHMiOlsiaW1nbGluayJdfV1dLCJyZXN1bHRzRm9ybWF0Ijoi PHRhYmxlIHN0eWxlPVwiYm9yZGVyOiAycHggc29saWQgYmxhY2tcIj5cbjx0cj5c bjx0ZCB3aWR0aD1cIjMwMFwiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAycHggc29s aWQgYmxhY2tcIj4kcXVlcnkuY2F0ZWdvcnk7ICRwMS5uYW1lOyBcdTA0MjJcdTA0 MzhcdTA0M2Y6ICRwMS50eXBlOyBcdTA0MjNcdTA0M2ZcdTA0MzBcdTA0M2FcdTA0 M2VcdTA0MzJcdTA0M2FcdTA0MzA6ICRwMS5ib3g7IFx1MDQyNFx1MDQzMFx1MDQ0 MVx1MDQzZVx1MDQzMlx1MDQzYVx1MDQzMDogJHAxLnBhY2s7ICRwMS5kZXNjcjsg JHAxLndlaWdodDsgJHAxLnByaWNlPC90ZD5cbjx0ZCB3aWR0aD1cIjIwMFwiIHZh bGlnbj1cIm1pZGRsZVwiIGFsaWduPVwiY2VudGVyXCI+PGltZyBzcmM9XCJodHRw Oi8vJHF1ZXJ5LmRvbWFpbiRwMS5pbWdsaW5rXCIgd2lkdGg9XCIyNDBcIiBoZWln aHQ9XCIyNDBcIj48L3RkPlxuPC90cj5cbjwvdGFibGU+IFxuPGJyPlxuXFxuIiwi cmVzdWx0c1NhdmVUbyI6ImZpbGUiLCJyZXN1bHRzRmlsZU5hbWUiOiJ0ZWEvc3Vt bWFyeS5odG1sIiwiYWRkaXRpb25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVl Ijoibm8iLCJxdWVyeUZvcm1hdCI6WyIkcXVlcnkiXSwidW5pcXVlUXVlcmllcyI6 ZmFsc2UsInNhdmVGYWlsZWRRdWVyaWVzIjpmYWxzZSwiaXRlcmF0b3JPcHRpb25z Ijp7Im9uQWxsTGV2ZWxzIjpmYWxzZSwicXVlcnlCdWlsZGVyc0FmdGVySXRlcmF0 b3IiOmZhbHNlfSwicmVzdWx0c09wdGlvbnMiOnsib3ZlcndyaXRlIjpmYWxzZX0s ImRvTG9nIjoiZGIiLCJrZWVwVW5pcXVlIjoiTm8iLCJtb3JlT3B0aW9ucyI6dHJ1 ZSwicmVzdWx0c1ByZXBlbmQiOiI8IURPQ1RZUEUgSFRNTD5cbjxodG1sPlxuPGhl YWQ+XG48bWV0YSBjaGFyc2V0PVwidXRmLThcIj5cbjwvaGVhZD5cbiIsInJlc3Vs dHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3VyY2UiOiJxdWVyeSIs InR5cGUiOiJzdHJpbmdTcGxpdCIsInNlcGFyYXRvciI6IjsiLCJ0byI6WyJjYXRl Z29yeSIsImxpbmsiXX0seyJzb3VyY2UiOiJsaW5rIiwidHlwZSI6ImV4dHJhY3RE b21haW4iLCJ0byI6ImRvbWFpbiJ9XSwicmVzdWx0c0J1aWxkZXJzIjpbeyJzb3Vy Y2UiOlswLCJkZXNjciJdLCJ0eXBlIjoiZGVjb2RlSHRtbCIsInRvIjoiZGVzY3Ii fV0sImNvbmZpZ092ZXJyaWRlcyI6W119fQ== P.S. При таком варианте решения итоговый файл сохраняется в виде html-страницы, на которой выводятся картинки и информация о товарах - таким образом решается вопрос сохранения целостности информации.
Большое спасибо за развернутый пример ! Вы не могли бы продублировать текстом - регулярные выражения Задание 1 : - Parse result Задание 2 : - Parse result Задание 3 : Parse Result - Тип - Упаковка - Фасовка - Описание - Изображение Очень жду ) Спасибо !
Подскажите, пожалуйста, куда импортировать код задания (который под спойлером "Пресет")? Искал в демо-версии A-Parser, не нашел этой возможности.
Здравствуйте. Ваша задача решается полностью аналогично (с небольшим отличием во втором задании). Первым заданием парсите ссылки на категории и их названия. Вторым - по полученным ссылкам парсите ссылки на товары. Тут нужно будет предусмотреть проход по пагинации. Для этого отлично подойдет функция Check next page. Третьим - по ссылкам из второго задания парсите нужную информацию и формируете результат. Регулярные выражения для заданий, как и сами задания, пользователи составляют самостоятельно. Небольшая справка по регуляркам в А-Парсере: http://a-parser.com/wiki/regex/