Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Помогите мне сделать web-паучка |

14.07.2008, 17:31
|
|
Banned
Регистрация: 14.04.2007
Сообщений: 297
Провел на форуме: 756152
Репутация:
38
|
|
Помогите мне сделать web-паучка
Как обычно GOOGLIL но нифига не нашол.
Как на php + mysql можно сделать простого паучка, который бы работал по следующему алгоритму:
1. Получить ссылку на ресурс.
2. Паук заходит на сайт и собирает ссылки на все страницы.
3. По найденным ссылкам на страницы он добавляет найденный материал (текст страницы)
в базу данных Mysql.
Помогите , просто даже не знаю с чего начать.
|
|
|

14.07.2008, 17:40
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
начни с чтения по темам:
Сокеты + регулярные выражения + Insert Into
|
|
|

14.07.2008, 18:41
|
|
Познавший АНТИЧАТ
Регистрация: 12.03.2008
Сообщений: 1,379
Провел на форуме: 5866479
Репутация:
1809
|
|
Посмотри скрипт который писал NOmeR1
Сообщение от NOmeR1
Уф.. Я сёдня потрудился, написал скрипт, который получает все ссылки с сайта.
http://forum.antichat.ru/threadnav65761-36-10.html
|
|
|

14.07.2008, 18:48
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Мало понял из того что ТС написал....непонятно откуда получать ссылку на ресурс, какую именно инфу сохранять и т.д....
Вот самый простейший пример:
PHP код:
<?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();
}
?>
Более того готовый скрипт парсинга выложили выше, тебе только доработать под себя....не забывай только проверять на абсолютные и относительные ссылки.
|
|
|

14.07.2008, 21:04
|
|
Познавший АНТИЧАТ
Регистрация: 30.04.2007
Сообщений: 1,206
Провел на форуме: 4778940
Репутация:
1257
|
|
если я правильно понял, то алгоритм такой:
1) даёш паучку ссайт
2) он берёт с него все ссылки и
2.1)добавляет в бд
2.2)переходит по ним. далее к п.2
хотя может тебе просто нужен поисковый двиг... =\
|
|
|

15.07.2008, 09:22
|
|
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме: 876216
Репутация:
209
|
|
Хм...по этому алгоритму оно может нихреново зациклиться  )))
|
|
|

25.07.2008, 03:48
|
|
Участник форума
Регистрация: 24.06.2008
Сообщений: 105
Провел на форуме: 674665
Репутация:
276
|
|
Сообщение от biophreak
Хм...по этому алгоритму оно может нихреново зациклиться  )))
+1, поэтому нужно составить карту ссылок, исключающую дубликаты, иначе будет вечный цикл. Так же опционально можно сделать фильтр глубины, чтобы уменьшить число итераций (допустим обрабатываются ссылки на 3 уровня вниз, обрабатываются ссылки только с данного домена, etc.)
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|