Добрый день. Собрал базу сайтов. Хотел бы отобрать из них нужные мне по тематике. Для этого хотел спарсить нужные страницы сайта и найти среди них нужные по ключам. Не получилось. Что имеется? 1. База сайтов вида: site.com site1.com site2.com 2. База ключевых слов, по которым сайт можно отнести к good key key1 key2 Что пытался сделать? 1. Использование HTML::TextExtractor - не получилось, т.к. он сохраняет данные в несколько строк, соответственно не получается привязать результат к одной строке. 2. Использование стороннего софта по типу winhttrack website copier и его аналогов. Не получается, т.к. по запросу site.com получаю файл index.html с содержанием "<BODY> <A HREF="https://www.site.com/"><h3>Click here...</h3></A> </BODY> <!-- Created by HTTrack Website Copier/3.49-2 [XR&CO'2014] -->" Что требуется? Использованием встроенных парсеров a-parser вставив базу доменов sites.txt и используя регулярное выражение, содержащие ключевые фразы, которые помечают файл как good. Соответственно, если на странице сайта есть хотя бы одна ключевая фраза из регулярки, то сайт GOOD. Как должен работать? Скорее всего это должно работать либо через HTML::TextExtractor, либо через Net::HTTP , проверяется на код 200 (но необязательно), после чего проверяется на наличие ключевых фраз ("keyword 1", "keyword 2"), которые будут перечисляться в регулярке. На выходе получается файл вида: site.com|good (найдена 1 или более ключевая фраза) site1.com|bad (найдено 0 ключевых фраз) Можно указать количество совпадений: site.com|good|3 (найдено 3 ключевые фразы) Но это не обязательно. Прошу помощи
Вам подойдет Net::HTTP - это универсальный парсер, который позволяет решать большинство нестандартных задач. Для парсинга необходимой информации нужно воспользоваться функцией Parse custom result и примерно таким регулярным выражением: Рекомендую ознакомиться с такими статьями документации: https://a-parser.com/wiki/parse-custom-result/ https://a-parser.com/wiki/regex/ https://a-parser.com/wiki/results-representation/ https://a-parser.com/wiki/result-format/ Кроме указанных выше ссылок также рекомендую ознакомиться с Каталогом примеров: https://a-parser.com/resources/ - там есть множество самых разных примеров. Если же у вас нет возможности изучать Документацию, то вы всегда можете составить подробное ТЗ и написать в Платную поддержку: http://a-parser.com/threads/1795/