Скрипт для проверки страницы на признаки +

Кирилл17 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
03.10.2008

Нужен скрипт на PHP 5.2.5 с работой на mySQL 4.1.22-standard (нужно, чтобы скрипт работал на хостинге с данными параметрами), который делает следующие вещи:

Берет из файлов длинные урлы, обрезает их, удаляет дубликаты (сверка с базой), добавляет в базу, парсит содержимое, проверяет на 2 признака, парсит ссылку, добавляет результат в базу.

Подробное описание:

В системе будет страничка с элементами управления:

«Добавить из папки upload» (добавляем урлы из файлов папки в базу, обработанные файлы удаляем)

«Запустить парсилку»

А также статистика:

Всего урлов:

Обработано: (тут выводим количество url со статусом 1 – таблица полей внизу описания)

1. Берем файлы из папки uploads и парсим их. В файлах записаны урлы в виде

http://sub1.site1.com/page32/page32.html

http://www.sub1.site1.com/page32/page33.html

http://sub2.site1.com/page32/page32.html

http://site2.com/page32/page32.html

http://site3.com/index

http://site3.com/index2

Нужно для всех файлов

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

http://sub1.site1.com

http://sub1.site1.com

http://sub2.site1.com

http://site2.com

http://site3.com

http://site3.com

б. Удалить дубликаты - на выходе получаем

http://sub1.site1.com

http://sub2.site1.com

http://site2.com

http://site3.com

То есть в mySQL у нас будет таблица с уникальными доменами (2-го и 3-го уровня - субдомены одного сайта считаются уникальными)

2. Заходим на сайт по url1, проверяем страницу на наличие признаков1.

-Если признаки нашли (хотя бы 1 из списка), то ставим checkresult=1, если не нашли ни одного, то ставим checkresult=0.

-Если признаки1 найдены на сайте, то ищем признаки2. Признаки 2 – это текст, который является анкором ссылки. При нахождении текста из признаков2 мы выдираем его ссылку и вставляем в url2. Например признаки 2 содержат слово «Сафари сегодня» в одной из строк. При находжении ссылки вида Сафари сегодня

Мы дерем ссылку http://site.com/safari.html и сохраняем в поле url2.

-Меняем status на 1

Содержимое url1 запрашивается с сервера, а управляющий парсингом скрипт запускается с локала через веб-интерефейс. Каждый обработанный url1 – новая точка на выводе. Через каждые 100 точек выводится ID следующего обрабатываемого url1/всего url1 (ID идут, начиная от 1 и дальше). Пример: …… …100/85302…….. ..200/85302…

Должна быть возможность экспорта содержимого базы в файл .csv в папку data в виде:

url1;checkresult;url2;status

url1;checkresult;url2;status

Если поле url2 пустое, то строка для данной записи выглядит так:

url1;checkresult;;status

Должна быть возможность повторного добавления новых записей в таблицу с уже существующими там записями. При этом повторные url1 не добавляются – только уникальные. И для новых url1 ставится status= 0, чтобы при запуске скрипта только новые записи обрабатывались.

Таблица должна иметь поля:

url1 (значение - проверяемый домен), checkresult (результат поиска первых признаков - 1 (найдены), 2 (не найдены), url2 (ссылка на внутреннюю страницу, найденная по 2-м признакам), status (1 - обработан, 0 - не обработан)

Признаки1 находятся в файле priznaki1.txt

Признаки2 находятся в файле priznaki2.txt

Параметры хостинга, где будет установлен скрипт.

PHP version 5.2.5

MySQL version 4.1.22-standard

Заявки фрилансеров