X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> помогите с парсером
EnterBack
EnterBack
Topic Starter сообщение 31.3.2010, 23:10; Ответить: EnterBack
Сообщение #1


В общем сделал парсер, который парсит с сайта http://qipstatus.ru/qip_status.php статусы. Так вот все парсит отлично и отбирает только статусы, но там статусы разбиты по страницам, а мне нужно чтобы парсер проходил по страницам с 1 по 39 и парсил все статусы...у меня чего то не получается :((
помогите сделать плз
вот код парсера :

[PHP]<?


function data($path,$host){
/*
$path путь к файлу скрипта, а так же передаваемые параметры
$host сграббливаемый хост (например, sasisa.ru)
*/
$fp = fsockopen($host, 80);
if (!$fp){die('ошибка');}
else{
$out = "GET $path HTTP/1.0\r\n";
$out .= "Accept: image/gif, application/xhtml+xml, */*\r\n";
$out .= "Accept-Language: ru\r\n";
$out .= "Host: $host\r\n";
//прикинемся оперой-мини
$out .= "User-Agent: Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1716; ru; U; ssr)\r\n";
$out .= "Cache-Control: no-cache\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
$headers = "";

while ($str = trim(fgets($fp)))$headers .= "$str\n";

$body = "";

while (!feof($fp))$body .= fgets($fp);

fclose($fp);
}
//возвращаем данные
return $body;
}
?>
<?
if (empty($_SERVER['QUERY_STRING'])){
$path='http://qipstatus.ru/qip_status.php';
}else{
$path='http://'.$_SERVER['HTTP_HOST'].'/qip_status.php?'.$_SERVER['QUERY_STRING'];
}
$fopen=fopen($path,"r");
while($fgets=fgets($fopen))$s.=$fgets;
header('Content-type:text/html;charset=utf-8');
preg_match_all("/<TD CLASS=td_status>([^*]+)<\/TD>/U", $s, $massiv, PREG_PATTERN_ORDER);


//Выводим спарсенную инфу
foreach($massiv[1] as $f){
echo "$f<br><br>";
}
?>[/PHP]
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 31.3.2010, 23:34; Ответить: UncleM
Сообщение #2


Весь этот код просто нужно запускать для каждой страницы отдельно, т.е. 39 раз.

Кстати, на сервере установлен cURL? Можно все сделать короче и быстрее. Ссылко.


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
EnterBack
EnterBack
Topic Starter сообщение 31.3.2010, 23:46; Ответить: EnterBack
Сообщение #3


ты че гонишь, у меня была эта мысль, но ты представляешь сколько это будет весить и сколько это все будет грузится ???:))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 1.4.2010, 0:33; Ответить: UncleM
Сообщение #4


Гонят самогон, а это не ко мне.

Так каким ты велосипедом хочешь тогда все парсить? Силой мысли?

39 GET запросов всего, чему тут весить?

Я недавно делал парсер для сканирования сайта с играми. Он напарсил материала на 3.5 ГБ, пропарсил сотни страниц и более 6000 файлов. Парсилось все моментально (отдельные файлы, то есть).


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 1.4.2010, 0:35; Ответить: ZhukV
Сообщение #5


ElectriK, я ж те вчера дал скрипт, зачем ты его не используеш? Открывая через сокет, ты еще более валиш свой сервер, чем через fopen()!!!!

(Mike @ 1.4.2010, 02:34) *
Весь этот код просто нужно запускать для каждой страницы отдельно, т.е. 39 раз.

Вполне верно. прорускай через цыкл.


(Mike @ 1.4.2010, 02:34) *
Кстати, на сервере установлен cURL? Можно все сделать короче и быстрее. Ссылко.

Такие сервера, как qip, должны иметь страницу (HTML, XML), где срау видно все статусы.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 1.4.2010, 0:44; Ответить: ZhukV
Сообщение #6


(Mike @ 1.4.2010, 03:33) *
Я недавно делал парсер для сканирования сайта с играми. Он напарсил материала на 3.5 ГБ, пропарсил сотни страниц и более 6000 файлов. Парсилось все моментально (отдельные файлы, то есть).

А вот это ты гониш!!!! Даже если и скрипт парсил, ресурсы сервера не покатят!!!!!! Сервер подохнет, либо стоит СУПЕР-ПУПЕР сервак. Но таких, кроме серваком Microsoft, Yandex, Mail, BigMir, Google и других продвинутых сервисов, я не встечал.
(Mike @ 1.4.2010, 03:33) *
Он напарсил материала на 3.5 ГБ

Да ты только представь, сколько нужно только ОЗУ сервера, чтоб сохранить этот код в статическую память сервера. Я уж не заикаюсь уже о процесорном времени.
(Mike @ 1.4.2010, 03:33) *
6000 файлов

А вот здесь интересно, как ты прощел цыкл? Поделишся :)

(Mike @ 1.4.2010, 03:33) *
Парсилось все моментально

Моментом и приблизительно не пропарится, даже если и стоит ресурсы СУПЕР-ПУПЕР.


----------------------------------------------------------------------
P.S. Возможно я и не прав, но тогда наведи прямой факт.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
UncleM
UncleM
сообщение 1.4.2010, 3:45; Ответить: UncleM
Сообщение #7


Да причем тут ОЗУ? Скрипт качал страницу, видергивал описание, ссылки на скриншоты и саму игру (флэш), потом скачивал это все на диск. Нафига это в ОЗУ хранить?

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

C:\blah\php.exe parse.php


и скрипт работал. Работал он 6 часов, но 99% времени ушло на скачивание картинок и флэш файлов, 3.5 ГБ все-таки.

Я вам говорю как есть. А что ТС не нравится правильная идея с парсингом всех страниц отдельно, так это уже его воля. Если он изобретет метод скачки 39 разных страниц одним HTTP запросом, то я буду считать его кодером-гением и мысленно поставлю ему памятник.


--------------------
Осторожно! Вы можете получить огромный заряд позитива!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 2.4.2010, 9:49; Ответить: ZhukV
Сообщение #8


(Mike @ 1.4.2010, 06:45) *
Нафига это в ОЗУ хранить?

А вот с этим обратись к руководству OC Windows!!!
Все переменные хранятся в ядре PHP. Но тогда интересно, как работает пхп на компе, или другая прога.
Если хочешь разобратся, пойди немного в сторону ассембера.
Вот там все расписано, что даже если иеется нулевой байт, он все же будет также записан в ОЗУ как 0x00, относительно ячейки памяти, kernel (компонент ядра винды) сама их распределяет.
Так что все что ты делаеш на компе, ВСЕ ЛЕТИТ СНАЧАЛА ЧЕРЕЗ ОЗУ
Найбольше ОЗУ используется при использование буфера памяти:
1. Копирование дисков
2. Создание образов дисков (буферы очень огромные)
3. Генерация картинок
3. Создание видео.
4. Прочье
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 2.4.2010, 10:44; Ответить: Letmetouchyou
Сообщение #9


ZhukV, подумй лутше, перед тем как писать
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZhukV
ZhukV
сообщение 2.4.2010, 15:01; Ответить: ZhukV
Сообщение #10


Letmetouchyou, чего-то я тебя не понял. К чему это ты.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 730 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Помогите рещить проблему с монитором.
Почему низкое разрешение при подключении монитора через displayport?
0 Levels 1702 11.12.2020, 0:48
автор: Levels
Открытая тема (нет новых ответов) Помогите кто нибудь получить партнерку Росбанк!
7 heisenberg_mw 2344 7.8.2020, 9:28
автор: heisenberg_mw
Открытая тема (нет новых ответов) Помогите найти тему пожалуйста
7 virtas 12530 24.7.2020, 17:02
автор: -JamesSmips-
Открытая тема (нет новых ответов) Помогите с поиском доноров
3 tehno_music 3359 4.11.2019, 17:15
автор: goblin78


 



RSS Текстовая версия Сейчас: 25.4.2024, 4:13
Дизайн