Вы не зашли.
Главная » PHP » Парсер
#1. Istsam Off (0)
Участник
2011.02.22 12:12
Имеется страница:
http://wap4u.ru/bash/index.php?url=&fon=FFFFFF&txt=76625B&stxt=9E8379&page=1
В конце ссылки, &page=1(тут работает навигация)
На каждую страницу, выводится по 6 цитат.
Задача: Мне нужно спарсить 3000 страниц, тоесть от &page=1 до &page=3000
Как мне это реализовать?
Я систему понимаю, нам нужно в цикл for() передавать начальное значение, и конечное.
И потом в самом цикле увеличивать.
Код:
$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. Gemorroj Off (107)
Administrator
2011.02.22 14:02
Код:
$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. Gemorroj Off (107)
Administrator
2011.02.22 17:05
фаерволл доступ в интернет закрыл?
#4. Istsam Off (0)
Участник
2011.02.22 17:05
<?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:05)
#5. Gemorroj Off (107)
Administrator
2011.02.22 17:05
у тебя 4 php чтоли?)
#6. Istsam Off (0)
Участник
2011.02.22 17:05
нет, Denver  у меня.
Alkatraz Mod
Добавлено спустя   4 минуты  55 секунд:
PHP Version 5.3.1
#7. DarkDaNTe Off (11)
Участник
2011.02.22 18:06
Работай с DOM моделью
Вот тут хорошая библиотека http://simplehtmldom.sourceforge.net
Отредактировано DarkDaNTe (2011.02.22 18:06)
#8. Gemorroj Off (107)
Administrator
2011.02.23 00:12
а тут еще лучше: http://php.net/dom
Добавлено спустя   1 минуту  12 секунд:
Istsam написал:
PHP Version 5.3.1
тогда убери этот бред
Код:
$ff=fopen("$dir/page_$bn.txt","w");
fwrite($ff,$text);
 
 
fclose;
и пользуйся file_put_contents
#9. Istsam Off (0)
Участник
2011.02.23 13:01
Gemorroj, да дело не в этом.
Вот ещё, как сделать, что бы вырезалась дата?
она имеет различный вид
#10. Gemorroj Off (107)
Administrator
2011.02.23 15:03
в этом, код ужасен. для меня это важно.
Код:
$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. Istsam Off (0)
Участник
2011.02.23 22:10
олололо.
Код:
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. Gemorroj Off (107)
Administrator
2011.02.23 22:10
городишь херню..) делай проще
Страниц: 1 2 Все
Главная
WEB
PunBB Mod v0.6.2
0.016 s