PDA

Просмотр полной версии : Помогите мне сделать web-паучка


MafiaBoy3
14.07.2008, 17:31
Как обычно GOOGLIL но нифига не нашол.

Как на php + mysql можно сделать простого паучка, который бы работал по следующему алгоритму:
1. Получить ссылку на ресурс.
2. Паук заходит на сайт и собирает ссылки на все страницы.
3. По найденным ссылкам на страницы он добавляет найденный материал (текст страницы)
в базу данных Mysql.


Помогите , просто даже не знаю с чего начать.

diehard
14.07.2008, 17:40
начни с чтения по темам:
Сокеты + регулярные выражения + Insert Into

mff
14.07.2008, 18:41
Посмотри скрипт который писал NOmeR1
Уф.. Я сёдня потрудился, написал скрипт, который получает все ссылки с сайта.
http://forum.antichat.ru/threadnav65761-36-10.html

.:EnoT:.
14.07.2008, 18:48
Мало понял из того что ТС написал....непонятно откуда получать ссылку на ресурс, какую именно инфу сохранять и т.д....
Вот самый простейший пример:
<?php
#Подключаем БД
mysql_connect('localhost', 'user', 'pass') or die('No connect');
mysql_select_db('mysql') or die('No connect');
#Откуда-то получаем ссылку на ресурс
$site = 'site.ru';
#Хапаем код сайта
$content = file_get_contents($site);
#Парсим ссылки
preg_match_all('/<a href="(.+)" (.+)<\/a>/', $content, $links);
#Ходим по ссылкам и сохраняем инфу в БД
foreach($links[1] as $link){
#Получаем инфу с сайта
$str = file_get_contents($link);
#Заносим в БД
mysql_query('INSERT INTO `table` VALUE(null, '.$str.')');
mysql_close();
}
?>

Более того готовый скрипт парсинга выложили выше, тебе только доработать под себя....не забывай только проверять на абсолютные и относительные ссылки.

mr.The
14.07.2008, 21:04
если я правильно понял, то алгоритм такой:
1) даёш паучку ссайт
2) он берёт с него все ссылки и
2.1)добавляет в бд
2.2)переходит по ним. далее к п.2

хотя может тебе просто нужен поисковый двиг... =\

biophreak
15.07.2008, 09:22
Хм...по этому алгоритму оно может нихреново зациклиться :))))

Whirt
25.07.2008, 03:48
Хм...по этому алгоритму оно может нихреново зациклиться :))))
+1, поэтому нужно составить карту ссылок, исключающую дубликаты, иначе будет вечный цикл. Так же опционально можно сделать фильтр глубины, чтобы уменьшить число итераций (допустим обрабатываются ссылки на 3 уровня вниз, обрабатываются ссылки только с данного домена, etc.)