#1 2011.02.22 12:49

Istsam
Участник
Зарегистрирован: 2011.01.31
Сообщений: 6
Карма: 0
Профиль Веб-сайт

Парсер

Имеется страница:
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-классы
Для каждой цитаты, отдельный файл

Неактивен

#2 2011.02.22 14:38

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

Код:

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]));

Неактивен

#3 2011.02.22 17:33

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

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

Неактивен

#4 2011.02.22 17:37

Istsam
Участник
Зарегистрирован: 2011.01.31
Сообщений: 6
Карма: 0
Профиль Веб-сайт

Re: Парсер

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

Отредактировано Istsam (2011.02.22 17:42)

Неактивен

#5 2011.02.22 17:41

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

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

Неактивен

#6 2011.02.22 17:43

Istsam
Участник
Зарегистрирован: 2011.01.31
Сообщений: 6
Карма: 0
Профиль Веб-сайт

Re: Парсер

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

Неактивен

#7 2011.02.22 18:51

DarkDaNTe
Участник
Откуда: Украина
Зарегистрирован: 2009.01.08
Сообщений: 574
Карма: 11
Профиль

Re: Парсер

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

Отредактировано DarkDaNTe (2011.02.22 18:52)

Неактивен

#8 2011.02.23 00:22

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

а тут еще лучше: 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

Неактивен

#9 2011.02.23 13:08

Istsam
Участник
Зарегистрирован: 2011.01.31
Сообщений: 6
Карма: 0
Профиль Веб-сайт

Re: Парсер

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

Неактивен

#10 2011.02.23 15:05

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

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

Код:

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);

Неактивен

#11 2011.02.23 22:19

Istsam
Участник
Зарегистрирован: 2011.01.31
Сообщений: 6
Карма: 0
Профиль Веб-сайт

Re: Парсер

олололо.

Код:

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 минуты :
^^рабочик код, вырезки рекламы

Неактивен

#12 2011.02.23 22:45

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6593
Карма: 107
Профиль Веб-сайт

Re: Парсер

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

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.2
0.013 s