Парсинг e-mail из страниц контактов

Пресет Объединить два задания в одно 1.0

Доступно владельцам лицензии
  • Автор темы Автор темы Patrick
  • Дата начала Дата начала

Patrick

A-Parser Enterprise License
A-Parser Enterprise
Доброго времени суток!

Есть два задания - 1ое собирает тайтлы, описание страниц и парсит ссылки с упоминанием киворда; 2ое собирает с собранных страниц email

Как это делается сейчас
1 задание
  1. query - список ссылок в формате https://a-parser.com/
  2. сначала проходим Net:HTTP и парсим title и description страницы (как в примере https://a-parser.com/threads/1519/)
  3. потом через HTML:LinkExtractor вытаскиваем ссылки, где встречаются ключевые слова contact|kontakt|support (как описано в примере https://a-parser.com/threads/1031/)
  4. на выходе выводим query, title, description, contact link
Код:
eyJwcmVzZXQiOiJ0aXRsZSxkZXNjcmlwdGlvbixjb250YWN0dXNwYWdlIiwidmFs
dWUiOnsicHJlc2V0IjoidGl0bGUsZGVzY3JpcHRpb24sY29udGFjdHVzcGFnZSIs
InBhcnNlcnMiOltbIk5ldDo6SFRUUCIsImRlZmF1bHQiLHsidHlwZSI6ImN1c3Rv
bVJlc3VsdCIsInJlc3VsdCI6ImRhdGEiLCJyZWdleCI6Ijx0aXRsZT4oW148Pl0q
KTwvdGl0bGU+IiwicmVnZXhUeXBlIjoiaXMiLCJyZXN1bHRUeXBlIjoiZmxhdCIs
ImFycmF5TmFtZSI6IiIsInJlc3VsdHMiOlsidGl0bGUiXX0seyJ0eXBlIjoiY3Vz
dG9tUmVzdWx0IiwicmVzdWx0IjoiZGF0YSIsInJlZ2V4IjoiPG1ldGEgbmFtZT1c
ImRlc2NyaXB0aW9uXCIgY29udGVudD1cIiguKj8pXCIgPy8/PiIsInJlZ2V4VHlw
ZSI6ImlzIiwicmVzdWx0VHlwZSI6ImZsYXQiLCJhcnJheU5hbWUiOiIiLCJyZXN1
bHRzIjpbImRlc2MiXX1dLFsiSFRNTDo6TGlua0V4dHJhY3RvciIsImRlZmF1bHQi
LHsidHlwZSI6ImZpbHRlciIsInJlc3VsdCI6WyJpbnRsaW5rcyIsImxpbmsiXSwi
ZmlsdGVyVHlwZSI6InJlbWF0Y2giLCJ2YWx1ZSI6ImNvbnRhY3R8a29udGFrdHxz
dXBwb3J0Iiwib3B0aW9uIjoiaSJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJm
b3JtYXRyZXN1bHQiLCJ2YWx1ZSI6IiRpbnRsaW5rcy5mb3JtYXQoJyRsaW5rOycp
In1dXSwicmVzdWx0c0Zvcm1hdCI6IiRxdWVyeTskcDEudGl0bGU7JHAxLmRlc2M7
JHAyLnByZXNldFxcbiIsInJlc3VsdHNTYXZlVG8iOiJmaWxlIiwicmVzdWx0c0Zp
bGVOYW1lIjoiJGRhdGVmaWxlLmZvcm1hdChSZXN1bHRzOlRpdGxlLGRlc2NyKS5j
c3YiLCJhZGRpdGlvbmFsRm9ybWF0cyI6W10sInJlc3VsdHNVbmlxdWUiOiJubyIs
InF1ZXJpZXNGcm9tIjoidGV4dCIsInF1ZXJ5Rm9ybWF0IjpbIiRxdWVyeSJdLCJ1
bmlxdWVRdWVyaWVzIjpmYWxzZSwic2F2ZUZhaWxlZFF1ZXJpZXMiOmZhbHNlLCJp
dGVyYXRvck9wdGlvbnMiOnsib25BbGxMZXZlbHMiOmZhbHNlLCJxdWVyeUJ1aWxk
ZXJzQWZ0ZXJJdGVyYXRvciI6ZmFsc2UsInF1ZXJ5QnVpbGRlcnNPbkFsbExldmVs
cyI6ZmFsc2V9LCJyZXN1bHRzT3B0aW9ucyI6eyJvdmVyd3JpdGUiOmZhbHNlfSwi
ZG9Mb2ciOiJubyIsImtlZXBVbmlxdWUiOiJObyIsIm1vcmVPcHRpb25zIjp0cnVl
LCJyZXN1bHRzUHJlcGVuZCI6IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1
aWxkZXJzIjpbXSwicmVzdWx0c0J1aWxkZXJzIjpbXSwiY29uZmlnT3ZlcnJpZGVz
IjpbXSwicnVuVGFza09uQ29tcGxldGUiOm51bGwsInVzZVJlc3VsdHNGaWxlQXNR
dWVyaWVzRmlsZSI6ZmFsc2UsInJ1blRhc2tPbkNvbXBsZXRlQ29uZmlnIjoiZGVm
YXVsdCIsInRvb2xzSlMiOiIiLCJwcmlvIjo1LCJxdWVyaWVzIjoiaHR0cDovL3d3
dy5hcGtkbG1vZC5jb21cbmh0dHA6Ly9iZG11c2ljMjMubGlmZVxuaHR0cDovL3d3
dy5hcGtsb3Zlci5uZXRcbmh0dHA6Ly9paGFja2VkaXQuY29tLyJ9fQ==

2 задание
  1. берем список ссылок на страницы с контактами из первого задания (формата https://a-parser.com/pages/support/open)
  2. парсим имейлы с этих страниц через HTML::EmailExtractor
  3. выводим в формате $query, email

далее руками объединяем обе выдачи. Подскажите, пжл, как можно объединить два задания?
 
Добрый день.
Да, эти задания можно объединить в одно. Для этого нужно воспользоваться инструментом tools.query.add. Пример объединения двух заданий в одно с помощью tools.query рассмотрен в этой статье: https://a-parser.com/resources/130/

Вот пример решения вашей задачи:

Парсинг e-mail из страниц контактов - Пример парсинга контактов одним заданием с использованием $tools.query

Задача: нужно зайти на сайт, получить из главной title и description, найти ссылки на страницы контактов, перейти по ним и спарсить все e-mail. В результат вывести ссылку на главную страницу, ссылку на страницу контактов, title, description и найденные e-mail.
DgHtl.png

  • Задача решается с помощью HTML::LinkExtractor HTML::LinkExtractor и $tools.query.
  • На первом этапе получаем тайтл, дескрипшн и ссылки на страницы контактов и...

Узнать больше об этом ресурсе...
 
Большое спасибо!

Могли бы вы написать комментарий к каждой строчке формата результата (что за что отвечает)?

Пытаюсь разобраться в том как пользоваться $tools.query, но пока выходит плохо. Перечитывал обзор инструмента $tools.query https://a-parser.com/resources/130/ и пробовал составять задания, но без положительных результатов.

Может быть посоветуете что еще прочитать на эту тему, чтобы лучше понимать специфику?
 
Пользуюсь, хорошая штука.
1) возможно есть такой же для получения телефонов?
2) в данном пресете не хватает удаления дублей по емайлам, а зачастую их очень много.
2017-09-26_22-13-31.jpg
 
Добрый день.
1) возможно есть такой же для получения телефонов?
Такого же нет, но вы легко можете поменять регулярку на нужную. Для телефонов ее сложнее составить, т.к. там нет общепринятого формата записи. Вот пример такой регулярки: https://a-parser.com/threads/2710/
2) в данном пресете не хватает удаления дублей по емайлам, а зачастую их очень много.
Ее легко добавить в пресет: https://a-parser.com/wiki/unique/
 
Приветствую
А как насчет такого варианта сбора? Рациональность?
Прогонать список через google, формируя запрос для каждого домена: site:link.ru контакты
берем первую ссылку которую google считает содержащей контакты и потом идем по ней.
 
Добрый день.
Это легко реализуется двумя заданиями либо же одним с помощью JS парсеров.
А насколько это рационально, вы сможете узнать, сделав такой парсер и оценив его работу.
 
Пожалуйста добавьте возможность к ссылкам добавлять id, а то когда сайтов много и надо работать со списками получается очень неудобно.
т.е. link^1, link^2,link^3
Хотел добавить сам, но понял что в JS не справлюсь.
 
Уточните, какие id, к каким ссылкам и на каком этапе нужно добавлять?
Мы говорим про пресет "Парсинг e-mail из страниц контактов 1.0", обсуждение почему то про сливание, про JS погорячился, имел ввиду js.tools
хотелось бы чтоб можно было задавать произвольные данные к ссылкам
т.е. у нас на входе сейчас так
http://www.altium.com
http://4pda.ru
https://a-parser.com
а хотелось бы примерно так
1^какая-то информация1^http://www.altium.com
2^какая-то информация2^http://4pda.ru
3^какая-то информация3^https://a-parser.com
не обязательно в такой последовательности
Зачем это нужно? Потому что потом приходится сводить большие таблицы и это занимает очень много времени.
Ну и на выходе получать такое
1;какая-то информация1;http://www.altium.com;урл контакт страницы;title;emails;
т.е. перед тем что есть просто добавить столбик с номером, который именно передается как параметр т.е. присутствует в query и данные какой-то информации
 
Мы говорим про пресет "Парсинг e-mail из страниц контактов 1.0", обсуждение почему то про сливание
Пресет "Парсинг e-mail из страниц контактов" - это как раз и есть пример объединения нескольких заданий в одно с использованием $tools.query.

имел ввиду js.tools
$tools.js в данном пресете не используется.

хотелось бы чтоб можно было задавать произвольные данные к ссылкам
Это легко решается Конструктором запросов. Разделяйте запрос на части, передавайте через тот же разделитель данные на следующий уровень и выводите их вместе с результатами.
 
Назад
Верх