Сохранение результатов нескольких парсеров в разные папки

Пресет По списку запросов получаем страницы, цмс, PR, email из whois 1.0

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

gerbill

A-Parser Enterprise License
A-Parser Enterprise
Всем привет!

В общем появилась задача написать довольно навороченный парсер гугла. Решил для этого использовать A-Parser, но пока не понимаю как написать соответсвующее задание. Суть того что мне нужно состоит в следующем:

  1. Есть список кивордов (для примера 1000 кивордов: http://hastebin.com/ufowilafiq.txt )
  2. Нужно с гугла получить ссылки на страницы, содержащие эти киворды (причем поиск нужно получить результаты за последнюю неделю)
  3. Помимо ссылок на сами страницы мне нужно получить еще и ссылки на кэш этих страниц в гугле
  4. Из полученного списка страниц надо экстрактить их домены второго уровня, чтобы понять Google PR главной страницы сайта
  5. Понять какую CMS использует каждый сайт
  6. Из whois получить email для каждого домена

В итоге результаты нужно представить в виде набора вложенных папок и текстовых файлов по примеру:
PR_1
\Joomla
\domain.com
contacts.txt - тут должны быть мыла, полученные из whois
cache.txt - тут ссылки на кэш гугла. Скорее всего ссылок будет несколько, т.к. разные страницы одного сайта будет выдаваться по разным кейордам при парсинге гугла​
\Drupal
\WordPress
\no CMS​
PR_2
PR_3
PR_4

Саппорт мне сказал, что такое задание сделать реально и это радует :) Однако, я пока не могу понять как парсеру правильно дать задание чтобы он выдал нужный результат
 
Последнее редактирование:
Данная задача решается двумя заданиями:
- первое парсит ссылки по кейвордам из файла для второго задания
- второе делает всю остальную работу

Первое задание:
*В качестве файла запросов указываем файл с кейвордами.
lifup.png

Код:
eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY0NS8gLSBc
dTA0NDFcdTA0MzFcdTA0M2VcdTA0NDAgXHUwNDQxXHUwNDQxXHUwNDRiXHUwNDNi
XHUwNDNlXHUwNDNhIiwidmFsdWUiOnsicHJlc2V0IjoiaHR0cDovL2EtcGFyc2Vy
LmNvbS90aHJlYWRzLzE2NDUvIC0gXHUwNDQxXHUwNDMxXHUwNDNlXHUwNDQwIFx1
MDQ0MVx1MDQ0MVx1MDQ0Ylx1MDQzYlx1MDQzZVx1MDQzYSIsInBhcnNlcnMiOltb
IlNFOjpHb29nbGUiLCJkZWZhdWx0Iix7InR5cGUiOiJvdmVycmlkZSIsImlkIjoi
cXVlcnlmb3JtYXQiLCJ2YWx1ZSI6IiRxdWVyeSBkYXRlcmFuZ2U6MjQ1NzE1Ni0y
NDU3MTYzIn1dXSwicmVzdWx0c0Zvcm1hdCI6IiRwMS5wcmVzZXQiLCJyZXN1bHRz
U2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxlTmFtZSI6InVybHMudHh0IiwiYWRk
aXRpb25hbEZvcm1hdHMiOltdLCJyZXN1bHRzVW5pcXVlIjoic3RyaW5nIiwicXVl
cnlGb3JtYXQiOlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZl
RmFpbGVkUXVlcmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9ucyI6eyJvbkFsbExl
dmVscyI6ZmFsc2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0ZXJhdG9yIjpmYWxzZX0s
InJlc3VsdHNPcHRpb25zIjp7Im92ZXJ3cml0ZSI6ZmFsc2V9LCJkb0xvZyI6Im5v
Iiwia2VlcFVuaXF1ZSI6Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRz
UHJlcGVuZCI6IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpb
XSwicmVzdWx0c0J1aWxkZXJzIjpbXSwiY29uZmlnT3ZlcnJpZGVzIjpbXX19

Второе задание:
*В качестве файла запросов указываем файл, полученный в первом задании.
*Результаты будут в папке res.
Go6bO.jpeg

Код:
eyJwcmVzZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY0NS8gLSBc
dTA0M2ZcdTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDM4
IFx1MDQ0MVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzNVx1MDQz
ZFx1MDQzOFx1MDQzNSBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M2JcdTA0
NGNcdTA0NDJcdTA0MzBcdTA0NDJcdTA0M2VcdTA0MzIiLCJ2YWx1ZSI6eyJwcmVz
ZXQiOiJodHRwOi8vYS1wYXJzZXIuY29tL3RocmVhZHMvMTY0NS8gLSBcdTA0M2Zc
dTA0MzBcdTA0NDBcdTA0NDFcdTA0MzhcdTA0M2RcdTA0MzMgXHUwNDM4IFx1MDQ0
MVx1MDQzZVx1MDQ0NVx1MDQ0MFx1MDQzMFx1MDQzZFx1MDQzNVx1MDQzZFx1MDQz
OFx1MDQzNSBcdTA0NDBcdTA0MzVcdTA0MzdcdTA0NDNcdTA0M2JcdTA0NGNcdTA0
NDJcdTA0MzBcdTA0NDJcdTA0M2VcdTA0MzIiLCJwYXJzZXJzIjpbWyJTRTo6R29v
Z2xlOjpQUiIsImRlZmF1bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVy
eWZvcm1hdCIsInZhbHVlIjoiJHF1ZXJ5LmRvbWFpbiJ9XSxbIlJhbms6OkNNUyIs
ImRlZmF1bHQiLHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIs
InZhbHVlIjoiJHF1ZXJ5In1dLFsiTmV0OjpXaG9pcyIsImRlZmF1bHQiLHsidHlw
ZSI6Im92ZXJyaWRlIiwiaWQiOiJxdWVyeWZvcm1hdCIsInZhbHVlIjoiJHF1ZXJ5
LmRvbWFpbiJ9LHsidHlwZSI6Im92ZXJyaWRlIiwiaWQiOiJyYXdkYXRhIiwidmFs
dWUiOnRydWV9XV0sInJlc3VsdHNGb3JtYXQiOiIkcDMuZW1haWxzLmZvcm1hdCgn
JGVtYWlsXFxuJykiLCJyZXN1bHRzU2F2ZVRvIjoiZmlsZSIsInJlc3VsdHNGaWxl
TmFtZSI6InJlcy8kcDEucHIvJHAyLmNtcy8kcXVlcnkuZG9tYWluL2NvbnRhY3Rz
LnR4dCIsImFkZGl0aW9uYWxGb3JtYXRzIjpbWyJyZXMvJHAxLnByLyRwMi5jbXMv
JHF1ZXJ5LmRvbWFpbi9jYWNoZS50eHQiLCJodHRwOi8vd2ViY2FjaGUuZ29vZ2xl
dXNlcmNvbnRlbnQuY29tL3NlYXJjaD9xPWNhY2hlOiRxdWVyeS5vcmlnJm51bT0x
MDAmc3RyaXA9MCJdXSwicmVzdWx0c1VuaXF1ZSI6Im5vIiwicXVlcnlGb3JtYXQi
OlsiJHF1ZXJ5Il0sInVuaXF1ZVF1ZXJpZXMiOmZhbHNlLCJzYXZlRmFpbGVkUXVl
cmllcyI6ZmFsc2UsIml0ZXJhdG9yT3B0aW9ucyI6eyJvbkFsbExldmVscyI6ZmFs
c2UsInF1ZXJ5QnVpbGRlcnNBZnRlckl0ZXJhdG9yIjpmYWxzZX0sInJlc3VsdHNP
cHRpb25zIjp7Im92ZXJ3cml0ZSI6ZmFsc2V9LCJkb0xvZyI6Im5vIiwia2VlcFVu
aXF1ZSI6Ik5vIiwibW9yZU9wdGlvbnMiOmZhbHNlLCJyZXN1bHRzUHJlcGVuZCI6
IiIsInJlc3VsdHNBcHBlbmQiOiIiLCJxdWVyeUJ1aWxkZXJzIjpbeyJzb3VyY2Ui
OiJxdWVyeSIsInR5cGUiOiJleHRyYWN0VG9wRG9tYWluIiwidG8iOiJkb21haW4i
fV0sInJlc3VsdHNCdWlsZGVycyI6W3sic291cmNlIjpbMiwiZGF0YSJdLCJ0eXBl
IjoicmVnZXgiLCJhcnJheSI6ImVtYWlscyIsInJlZ2V4IjoiZW1haWw6KC4rP0Au
Kz9cXC4uKz8pXFxzIiwicmVnZXhUeXBlIjoiaXNnIiwidG8iOlsiZW1haWwiXX1d
LCJjb25maWdPdmVycmlkZXMiOltdfX0=
 
Спасибо! Работает на ура за исключением сбора мыл хуиза. Очень часто вижу вместо мыла запись "none"
Могу предположить что всюду хуиз как-то поразному записан и вместо файла contacts.txt пускай будет whois.txt, где просто весь полученный хуиз будет записан, а мы потом уже разберемся с контактами

А так, ну просто офигенно помоему :) Сколько у тебя времени заняло написать это задание?
 
Работает на ура за исключением сбора мыл хуиза. Очень часто вижу вместо мыла запись "none"
Относительно этого есть заявка на улучшение: http://a-parser.com/threads/1648/
вместо файла contacts.txt пускай будет whois.txt
Тогда формат результата для первого файла меняем с $p3.emails.format('$email\n') на $p3.data
И имя первого файла меняем с res/$p1.pr/$p2.cms/$query.domain/contacts.txt на res/$p1.pr/$p2.cms/$query.domain/whois.txt
А также убираем конструктор результатов.
Но даже так емейлов больше не станет.
Сколько у тебя времени заняло написать это задание?
Около часа.
 
иногда бывает что просто пустой файл whois
например пустой хуиз оказался для доменов
newsworks.org
eveningtimes.co.uk
knpr.org
louisianatravel.com
morongonation.org

ну и много других
что-то не вижу закономерности почему для других доменов хуиз получен, а для этих - нет
 
Возможно дело в самом парсере Net::Whois. Заявка на улучшение оставлена, посмотрим.
 
что-то с парсером whois
запустил еще раз парсер чтобы получить повторный результат, так вот в первый раз для домена zendcon.com хуиз не получили, а во второй раз получили
а для домена football411.com в первый раз пришли другие хуиз, нежелеи во второй раз. Вернее в первый раз был получен полный хуиз, а во второй раз только первая его часть

может в проксях дело?
 
в общем проблема с проксями, как оказалось
запустил сбор хуиз без прокси и щас не вижу пустых хуизов. Может где-то и есть такие, но я все эти домены не могу проверить руками. Штук 20 просмотрел и везде хуиз есть
 
столкнулся с тем, что получается довольно неудобно работать с результатами когда всё разбросано по папкам. Намного удобнее было бы выводить их на html странице в таком виде:

Для каждой цмс своя страница html. Например, страница под названием eZ_Publish.html
Содержание страницы (все ссылки открываются в новом окне):

PR1
domain1.com cache#1 cache#2 cache#3 whois
domain2.com cache#1 cache#2 whois


PR2

domain4.com cache#1 cache#2 cache#3 whois
domain5.com cache#1 cache#2 whois


Можно так сделать?

PS: ссылку на хуиз можно давать на домэин тулз, например как эту
http://whois.domaintools.com/google.ru
 
Сохранять в виде html-страницы можно, изменяя нужным образом формат вывода, а также добавляя начальный и конечный тексты. Но добиться чтобы все было отсортировано именно в таком порядке - скорее всего не получится.
 
а в каком порядке можно?

на самом деле я для примера тот порядок написал. В любом порядке подойдет, лишь бы можно было с этим потом работать :)
 
Будет что-то вроде такого:
Страница названная по имени CMS
Содержание страницы:
PR1
domain1.com cache#1 whois
PR3
domain3.com cache#1 whois
PR3
domain3.com cache#2 whois
PR5
domain2.com cache#1 whois
PR1
domain1.com cache#2 whois
PR2
domain4.com cache#1 whois
PR3
domain3.com cache#3 whois

Эксперементируйте с форматом вывода, добавляя туда нужный текст.
 
Будет что-то вроде такого:
Страница названная по имени CMS
Содержание страницы:
PR1
domain1.com cache#1 whois
PR3
domain3.com cache#1 whois
PR3
domain3.com cache#2 whois
PR5
domain2.com cache#1 whois
PR1
domain1.com cache#2 whois
PR2
domain4.com cache#1 whois
PR3
domain3.com cache#3 whois

Эксперементируйте с форматом вывода, добавляя туда нужный текст.
чуть попробовал, фигня получается :) я не программист, а разбираться нет времени. Я и заплатить готов тому, кто бы удовлетворил мои нужды в парсинге
 
Назад
Верх