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



 

Здравствуйте, гость ( Вход | Регистрация )

5 страниц V   1 2 3 4 5 >
Открыть тему
Тема закрыта
> Парсер Lenta.Ru, основанный на регулярных выражениях.
ParavoZ
ParavoZ
Topic Starter сообщение 1.8.2010, 0:08; Ответить: ParavoZ
Сообщение #1


G
*******

Группа: Active User
Сообщений: 2522
Регистрация: 5.1.2009
Поблагодарили: 1329 раз
Репутация:   167  


<?php
$vip = file_get_contents("http://lenta.ru/news/2010/07/30/"); // 
$n = preg_match_all('!<span class=title><a href=(.*)>.*</a></span></p>!i', $vip, $result);
if($n)
{
for($a=0;$a<$n;$a++)
{
$page = file_get_contents("http://lenta.ru".$result[1][$a]);
$page = preg_replace("!<a.*>!sU", " " , $page);
$page = preg_replace("!</a>!sU", " " , $page);
$regex = preg_match_all('!<H2>(.*)</H2>.*</TABLE>(.*)<P class=links>!isU', $page, $itog);
if($regex)
{

echo $itog[1][0].'<br>';
echo $itog[2][0].'<br>';
};
};

};
?>

с 1 парсинга - примерно 178 килобайт текстовки качественного новостного копипаста, который не парсился особо ранее.


Что нужно менять в скрипте:

$vip = file_get_contents("http://lenta.ru/news/2010/07/30/"); //


меняем урл http://lenta.ru/news/2010/07/30/ на страницы вида

http://lenta.ru/news/2010/07/15/ - парсим все новости 15 числа.

http://lenta.ru/sport/2010/07/28/ - парсим все новости спортивного раздела за 28 июля.

и так далее.




use.


Поблагодарили: (8)
9
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
simpliex
simpliex
сообщение 1.8.2010, 0:41; Ответить: simpliex
Сообщение #2


Старожил
******

Группа: Active User
Сообщений: 1928
Регистрация: 11.4.2009
Из: Москва
Поблагодарили: 524 раза
Репутация:   101  


А куда и в каком формате он сохраняет?


--------------------
Осторожно! Должник.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ParavoZ
ParavoZ
Topic Starter сообщение 1.8.2010, 0:45; Ответить: ParavoZ
Сообщение #3


G
*******

Группа: Active User
Сообщений: 2522
Регистрация: 5.1.2009
Поблагодарили: 1329 раз
Репутация:   167  


simpliex, прямо в браузер.
Сохрани в файл пхп и врубай на хостинге
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
valeros
valeros
сообщение 1.8.2010, 0:50; Ответить: valeros
Сообщение #4


Lux in tenebris
*****

Группа: Active User
Сообщений: 506
Регистрация: 6.5.2009
Из: Qiev
Поблагодарили: 357 раз
Репутация:   48  


Просто при больших объемах,не удобно копипастить,вот если бы сразу в txt файл - другое дело.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Cttr
Cttr
сообщение 1.8.2010, 2:06; Ответить: Cttr
Сообщение #5


Завсегдатай
*****

Группа: Active User
Сообщений: 524
Регистрация: 13.5.2010
Из: Украина, Крым
Поблагодарили: 163 раза
Репутация:   23  


Прикрутил бы лучше импорт урлов и экспорт исходной статьи + почистить от ссылок - в общем разгон есть куда брать smile.gif
Кстати у ленты есть XML канал, с ним лучше дружить.

Поддержу немного ТС:

- снят лимит, ибо 30 сек не хватает
- добавлена форма для ввода url
- добавлена запись в файл


Пользуйтесь на здоровье, друзья.

<?php

    ini_set ('max_execution_time', 0);
    
    if (! $_POST) {
    
        echo '<form method="post">URL: <input type="text" name="url" style="width: 200px"> <input type="submit" values="парсить"></form>';
        
    } else {
    
        $vip = file_get_contents ($_POST['url']);
        $n = preg_match_all ('!<span class=title><a href=(.*)>.*</a></span></p>!i', $vip, $result);
        
        if ($n) {
            for($a=0; $a < $n; $a++) {
                $page = file_get_contents ("http://lenta.ru". $result[1][$a]);
                $page = preg_replace ("!<a.*>!sU", ' ', $page);
                $page = str_replace ('</a>', ' ', $page);
                $regex = preg_match_all ('!<H2>(.*)</H2>.*</TABLE>(.*)<P class=links>!isU', $page, $itog, PREG_SET_ORDER);
                
                if ($regex) {                    
                    $file = fopen ('text_' .$a. '.txt', 'a');
                    fwrite ($file, $itog[0][1] ."\n". str_replace ('<p>', '', $itog[0][2]));
                }
            }
        }
    }

?>


Сообщение отредактировал Cttr - 1.8.2010, 2:15


--------------------
Помогите спасти девочку
Продвижение неизбежно, когда такая высокая конкуренция


Поблагодарили: (3)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
burusha
burusha
сообщение 1.8.2010, 9:36; Ответить: burusha
Сообщение #6


Забаненный
****

Группа: Banned
Сообщений: 457
Регистрация: 23.11.2009
Из: WebTown
Поблагодарили: 247 раз
Репутация:   55  


На сколько я знаю, php процессы ограничены по времени, поэтому и нужен лимит. Зачем же его тогда снимать?
Или я ошибаюсь?


--------------------
Забанен за негативное отношение к форуму и его администрации.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Cttr
Cttr
сообщение 1.8.2010, 21:06; Ответить: Cttr
Сообщение #7


Завсегдатай
*****

Группа: Active User
Сообщений: 524
Регистрация: 13.5.2010
Из: Украина, Крым
Поблагодарили: 163 раза
Репутация:   23  


(burusha @ 1.8.2010, 8:36) *
Или я ошибаюсь?

Дефолтный лимит 30 секунд. Скрипт, если не успел завершить операцию, отработал 30 секунд и вылетает с фаталом. Мой канал интернета лично не позволяет за 30 сек спарсить 120 новостей, к примеру. Вот и все обьяснение

Сообщение отредактировал Cttr - 1.8.2010, 21:14


--------------------
Помогите спасти девочку
Продвижение неизбежно, когда такая высокая конкуренция
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gad3000
Gad3000
сообщение 2.8.2010, 23:24; Ответить: Gad3000
Сообщение #8


Завсегдатай
*****

Группа: Active User
Сообщений: 816
Регистрация: 26.4.2009
Поблагодарили: 160 раз
Репутация:   28  


А откуда потом брать файл со спарсенным? blush.gif


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Cttr
Cttr
сообщение 3.8.2010, 3:39; Ответить: Cttr
Сообщение #9


Завсегдатай
*****

Группа: Active User
Сообщений: 524
Регистрация: 13.5.2010
Из: Украина, Крым
Поблагодарили: 163 раза
Репутация:   23  


(Gad3000 @ 2.8.2010, 22:24) *
А откуда потом брать файл со спарсенным?

А потестировать ни-ни? Кстати там не один файл, а на каждую новость свой файл. Создает в ту же папку где и лежит скрипт.


--------------------
Помогите спасти девочку
Продвижение неизбежно, когда такая высокая конкуренция
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
centurion
centurion
сообщение 3.8.2010, 9:44; Ответить: centurion
Сообщение #10


Топовый постер
*******


Группа: Active User
Сообщений: 2831
Регистрация: 10.12.2007
Из: aceweb
Поблагодарили: 1349 раз
Репутация:   308  


(Cttr @ 3.8.2010, 3:39) *
А потестировать ни-ни? Кстати там не один файл, а на каждую новость свой файл. Создает в ту же папку где и лежит скрипт.

Кинул 222.php в корень.
Ни чего не парсит.

И из папки не парсит.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыA-Parser 1.1 - продвинутый парсер ПС, кейвордов, контента, показателей, 70+ парсеров.
169 Forbidden 103540 15.12.2017, 14:32
автор: AParser_Support
Открытая тема (нет новых ответов) Нужен парсер контента
Уважаемые знатоки, требуется ваш совет или рекомендация.
4 m1h3y 1051 20.11.2017, 6:56
автор: Strellok
Горячая тема (нет новых ответов) Tubes Clip One - парсер тубов
32 xoopw 17516 29.10.2017, 3:02
автор: xoopw
Открытая тема (нет новых ответов) WebArchiveMaster - парсер Вебархива
Добыча контента из ВебАрхива
8 footashes 1215 25.10.2017, 22:02
автор: footashes
Открытая тема (нет новых ответов) Возможно ли создать парсер Кинопоиска по рецензиям?
1 MoreVi 425 24.10.2017, 21:47
автор: dimaprog


 



RSS Текстовая версия Сейчас: 17.12.2017, 22:01
Дизайн