Парсинг информации по странице

ileweste

A-Parser Pro License
A-Parser Pro
Добрый день. Собрал базу сайтов.
Хотел бы отобрать из них нужные мне по тематике.
Для этого хотел спарсить нужные страницы сайта и найти среди них нужные по ключам. Не получилось.
Что имеется?
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 ключевые фразы)
Но это не обязательно.
Прошу помощи :)
 
Последнее редактирование модератором:
Добрый день. Собрал базу сайтов.
Хотел бы отобрать из них нужные мне по тематике.
Для этого хотел спарсить нужные страницы сайта и найти среди них нужные по ключам. Не получилось.
Что имеется?
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.png
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/
 
Назад
Верх