Использование PHP для написания "пауков"

_RVK_

Новичок
Использование PHP для написания "пауков"

Есть скрипт который "ходит" на определённый список сайтов, заполняет формы и полученную информацию сохраняет в БД. Всё работает, но настораживает то что работает это на протяжении нескольких часов. (сколько конкретно пока не тестировал). Скрипто должен запускаться CRONом в определённое время.
Так вот вопрос. Можно ли вообще писать на PHP такие программы. Стоит как либо по особенному организововать такую программу(многозадачность, потоки). Какие существуют опасности на случай сбоя (соединения, сервера, итд) Ведь, по сути, пока скрипт не обработает последний сайт, он не будет реагировать ни на что, словно он зациклился. Как такое воспринимет сервер, ОС...
В общем поделитесь мнением и опытом по написанию таких программ.
 

Crazy

Developer
По-уму такие тулзы пишутся на более пригодных средствах: WebL, Puffin...
 

_RVK_

Новичок
Значит многопоточности в ПХП нет... Жаль...
На счёт этого не понял:
http://phpclub.net/talk/showthread....6326#post186326
young, не мог бы вкрации пояснить для чего это?

Такое на php писать можно и выглядеть оно будет так

$result = `wget ....`;
Это тоже не понял. Что ты имел ввиду.
 

young

Новичок
На счёт этого не понял:
http://phpclub.net/talk/showthread....6326#post186326
young, не мог бы вкрации пояснить для чего это?
Для того что бы ты в PHP мог качать сайт хоть в 100 потоках :)

wget - Специальная маленькая програмка для скачивания файлов/сайтов :)
 

_RVK_

Новичок
Для того что бы ты в PHP мог качать сайт хоть в 100 потоках
Обьясни КАК это реализованно. В чем основная идея? В Коде нет коментариев и используются функции которых я не знаю.
wget - Специальная маленькая програмка для скачивания файлов/сайтов
Это шутка?
 

young

Новичок
>> Обьясни КАК это реализованно.

Ты запускаешь одновременно 100 php скриптов. 99 из них пытаеться чего-то качать, а 1 говорит кому что качать и куда ложить :)

>> Это шутка?
WGET(1) GNU Wget WGET(1)



NAME
wget - GNU Wget Manual

SYNOPSIS
wget [option]... ... DESCRIPTION GNU Wget is a free utility for non-interactive download of files from the Web. It supports HTTP, HTTPS, and FTP proґ tocols, as well as retrieval through HTTP proxies. Wget is non-interactive, meaning that it can work in the background, while the user is not logged on. This allows you to start a retrieval and disconnect from the system, letting Wget finish the work. By contrast, most of the Web browsers require constant user's presence, which can be a great hindrance when transferring a lot of data. Wget can follow links in HTML pages and create local verґ sions of remote web sites, fully recreating the directory structure of the original site. This is sometimes referred to as ``recursive downloading.'' While doing that, Wget respects the Robot Exclusion Standard (/robots.txt). Wget can be instructed to convert the links in downloaded HTML files to the local files for offline viewing. Wget has been designed for robustness over slow or unstaґ ble network connections; if a download fails due to a netґ work problem, it will keep retrying until the whole file has been retrieved. If the server supports regetting, it will instruct the server to continue the download from where it left off.
 

_RVK_

Новичок
Ты запускаешь одновременно 100 php скриптов
Так и знал... Вообще этот вопрос нужно было задавать до того как начался проект. Ну чтож... В будующем будем умнее... Спасибо.
 

_RVK_

Новичок
А какие проблемы могут возникнуть если оставить всё как есть?
 

Screjet

Новичок
только одна проблема: под виндой не работает fork(),
а в остальном "все-хорошо! все-хорошо!" (с) Утесов
 

young

Новичок
Проблем намного больше - под виндой не работает с пол сотни полезных функций.
Пример навскидку - gethostbyname().
 

Crazy

Developer
И давно не работает?

PHP:
<?php echo gethostbyname('www.ibm.com') ?>
Выдает:

Код:
129.42.19.99
 

_RVK_

Новичок
Я имел ввиду если оставить как есть у меня. Те делать всё в цикле, последовательно...
 

_RVK_

Новичок
Скорость оставляет желать лучшего но переделывать поздно. Тем более что narod.ru тянуть мне не надо а просто делать запрос и парсть то что получилось. Те проблемы только в скорости?
 

young

Новичок
То, чего вообще нет, "не работать" не может.
Объяснитесь?!


Get MX records corresponding to a given Internet host name (PHP 3, PHP 4 )
int getmxrr ( string hostname, array mxhosts [, array weight] )

Searches DNS for MX records corresponding to hostname. Returns TRUE if any records are found; returns FALSE if no records were found or if an error occurred.

A list of the MX records found is placed into the array mxhosts. If the weight array is given, it will be filled with the weight information gathered.
 
Сверху