Istsam » 2011.02.22 12:49

Имеется страница:
http://wap4u.ru/bash/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&page=1
В конце ссылки, &page=1(тут работает навигация)
На каждую страницу, выводится по 6 цитат.
Задача: Мне нужно спарсить 3000 страниц, тоесть от &page=1 до &page=3000
Как мне это реализовать?
Я систему понимаю, нам нужно в цикл for() передавать начальное значение, и конечное.
И потом в самом цикле увеличивать.

Код:

1
2
3
4
5
6
7
8
9
$ot=1; //страница от которой парсим
$do=3000; //страница до которой парсим
$dir='dir'; //папка куда сохраняем
////////////////////
for($bn=$ot;$bn<$do;$bn++)
{
$site = http://wap4u.ru/bash/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&page=$bn;
а вот тут что делать, не знаю
}

P.S.При копировнии, нужно вырезать рекламу и прочие div-классы
Для каждой цитаты, отдельный файл

Gemorroj » 2011.02.22 14:38

Код:

1
2
3
4
$f = file_get_contents('http://wap4u.ru/bash/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&page=1');
$expl = explode('<div class="text">', $f);
$f = explode('<br/>&nbsp;<br/>Стр.:', $expl[1]);
echo trim(str_replace(array('&nbsp;', '&quot;'), array(' ', '"'), $f[0]));
Gemorroj » 2011.02.22 17:33

фаерволл доступ в интернет закрыл?

Istsam » 2011.02.22 17:37

<?php
set_time_limit(0);
//////настройки//////
$ot=1; //ID темы от которой парсим
$do=5; //ID темы до которой парсим
$site='http://wap4u.ru/bash/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&page='; //адрес форума
$dir='txt'; //папка куда сохраняем темы
////////////////////
for($bn=$ot;$bn<$do;$bn++){
$f = file_get_contents(''.$site.''.$bn.'');
$expl = explode('<div class="text">', $f);
$f = explode('<br/>&nbsp;<br/>Стр.:', $expl[1]);
$text = trim(str_replace(array('&nbsp;', '&quot;'), array(' ', '"'), $f[0]));   
$ff=fopen("$dir/page_$bn.txt","w");
fwrite($ff,$text);


    fclose;
  }
  ?>
Работает.
Ещё вопрос, нужно удалить дату.
Как это сделать?
Ведь на каждой странице она разная

Gemorroj » 2011.02.22 17:41

у тебя 4 php чтоли?)

Istsam » 2011.02.22 17:43

нет, Denver  у меня.
Alkatraz Mod
Добавлено спустя   4 минуты  55 секунд:
PHP Version 5.3.1

DarkDaNTe » 2011.02.22 18:51

Работай с DOM моделью
Вот тут хорошая библиотека http://simplehtmldom.sourceforge.net

Gemorroj » 2011.02.23 00:22

а тут еще лучше: http://php.net/dom
Добавлено спустя   1 минуту  12 секунд:

Istsam написал:

PHP Version 5.3.1

тогда убери этот бред

Код:

1
2
3
4
5
$ff=fopen("$dir/page_$bn.txt","w");
fwrite($ff,$text);
 
 
fclose;

и пользуйся file_put_contents

Istsam » 2011.02.23 13:08

Gemorroj, да дело не в этом.
Вот ещё, как сделать, что бы вырезалась дата?
она имеет различный вид

Gemorroj » 2011.02.23 15:05

в этом, код ужасен. для меня это важно.

Код:

1
2
$str = '<b>22.02.11 09:44</b> sdg d<b>22.02.11 09:44</b> вап<b>22.02.11 09:44</b> эж';
echo preg_replace('/<b>(?:.*)<\/b> /U', '', $str);
Istsam » 2011.02.23 22:19

олололо.

Код:

1
preg_match_all('#<b>([0-9]{2})\.([0-9]{2})\.([0-9]{2}) ([0-9]{2})\:([0-9]{2})</b> <br/>(.*)<br/>&nbsp;<br/>#Uis',$file,$data);

Добавлено спустя   3 минуты :
^^рабочик код, вырезки рекламы

Gemorroj » 2011.02.23 22:45

городишь херню..) делай проще