[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как сделать паука?
Владимир55
Сервис аудита показывает, что на сайте имеются внутренние ссылки с неверным синтаксисом. Немного, но есть. А где именно, понять не удается.

В связи с этим хочу скачать сайт на денвер и тогда уже поиском по файлам этот дефект наверняка найдется (он содержит диез).

Как сделать РНР скрипт, который пройдет по всем ссылкам сайта и скачает все страницы на компьютер?

(Тут нужна рекурсия, но я сам с этим точно не справлюсь. Помнится, что где-то в сети я такой скрипт уже видел и он, вроде бы, не очень сложный. Тогда был не нужен, а сейчас найти его не удается).
walerus
Что мешает его скачать по фтп?, если сайт Ваш... А если не Ваш то как собираетесь править?, страницы динамические или статика?

Напишите обычный парсер ссылок со страницы и гоняйте его по этим ссылкам.
Владимир55
Цитата (walerus @ 1.01.2017 - 22:04)
Что мешает его скачать по фтп?, если сайт Ваш...

Сайт-то мой, но что толку от скачивания по фтп? Это же я скачаю не сайт, а CMS!

Я это давно уже сделал, но это совершенно не дает результата.


Цитата (walerus @ 1.01.2017 - 22:04)
Напишите обычный парсер ссылок со страницы и гоняйте его по этим ссылкам.


Вроде бы это и не сложно, но парсер будет ходить бесконечно, поскольку ссылки поведут его с главной по ветвям, по кольцам и т.д.
С ума сойдешь все это отлаживать!
FatCat
Любой "оффлайн-браузер" в помощь.

_____________
Бесплатному сыру в дырки не заглядывают...
Bolik
Цитата

но парсер будет ходить бесконечно


ну это уже в зависимости от того откуда руки растут. если запоминанать что уже было проверено, а что нет, то никаких бесконечных хождений не будет.

кстати могу посоветовать книгу: https://www.nostarch.com/webbots2 .
sergeiss
Цитата (Владимир55 @ 2.01.2017 - 01:56)
Как сделать РНР скрипт, который пройдет по всем ссылкам сайта и скачает все страницы на компьютер?

Владимир, а почему именно ПХП? У тебя же проблема, по сути дела, на клиентской стороне. Ну так там и работай!
Предлагаю такой порядок действий.
1. Сделать нужный user script, который будет заниматься парсингом. Что это такое - можно прочитать тут http://xdan.ru/ustanovka-sobstvennih-users...gle-chrome.html и погуглить самому.
2. Твой скрипт проверяет все страницы сайта, пишет все ссылки в localStorage, после чего анализирует их и, если надо, переходит по ним (только по внутренним).
3. Запись в localStorage будет типа БД, чтобы зафиксировать, на какой странице была ссылка, насколько она качественная, был ли сделан переход по ней, что вообще была попытка перейти (чтобы не делать бесконечные петли)... Формат записи тут нужен JSON, т.к. работать будешь с JS, а для JS удобнее сохранять данные в JSON.
4. Анализируешь полученный результат.

Цитата (Владимир55 @ 2.01.2017 - 01:56)
Тут нужна рекурсия, но я сам с этим точно не справлюсь.

Считай, что у тебя задание такое, которое ты должен сделать сам smile.gif Хоть на ПХП, хоть на JS. И лучше на JS. Потому что если есть хоть одна ссылка, которая формируется динамически, то на ПХП ты получишь неполноценный результат.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Владимир55
Похоже, что я зря испугался...

Получается, что тут самому сделать даже проще, чем разбираться и отлаживать готовые скрипты.
walerus
Владимир55
Конечно зря испугался, парсер написать... ну час от силы с перерывами на бутерброды и кофе, а если еще и курл многостаночный заюзать, то вообще - парсер "разорвет" сайт за 10ть минут, если конечно скоростя позволяют.

Складывать в разные коробочки "ссылка" <=> "собранные с нее урлы", есть ошибка(диез) в этих собранных урлах, откладывать в третью коробочку ( "ссылка" <=> "ошибочные на ней урлы" ), и дальше парсить НЕ пройденные ранее урлы.
Владимир55
За час я, конечно же, не уложился, поскольку "раскладывание по коробочкам" оказалось не столь простым делом, но это уж всяко лучше, чем собирать скрипты по сети, на что я потратил два дня. При этом еще и вирусов натаскал.

На практике оказалось, что скачанный контент и сохранять-то не надо!
walerus
Владимир55
Конечно не надо, для чего он? - нужны были только ссылки и ошибочные ссылки rolleyes.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.