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



 

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

Открыть тему
Тема закрыта
> Помогите поправить маленький скрипт парсера., Когда то работал, а сейчас не хочет.
gentvol
gentvol
Topic Starter сообщение 6.1.2014, 23:50; Ответить: gentvol
Сообщение #1


Частый гость
**

Группа: User
Сообщений: 83
Регистрация: 2.6.2012
Поблагодарили: 15 раз
Репутация:   3  


Приветствую, уважаемые!
С праздниками всех!

Помогите пожалуйста поправить скрипт парсера каталога ЛИ.
Сам файлик залил на rg, вот здесь он --> http://rghost.ru/51450698
Он когда то работал хорошо, а сейчас не хочет совсем...


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
blackintenum
blackintenum
сообщение 7.1.2014, 0:25; Ответить: blackintenum
Сообщение #2


Новичок
*

Группа: User
Сообщений: 18
Регистрация: 5.1.2014
Из: Краснодар
Поблагодарили: 0 раз
Репутация:   -2  


gentvol, выложи сюда исходником...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gentvol
gentvol
Topic Starter сообщение 7.1.2014, 11:39; Ответить: gentvol
Сообщение #3


Частый гость
**

Группа: User
Сообщений: 83
Регистрация: 2.6.2012
Поблагодарили: 15 раз
Репутация:   3  


Вот

$liru_url = 'http://www.liveinternet.ru/rating/ru/'; //URL категории рейтинга, которую будем парсить (слэш "/" на конце ссылки обязателен!)
$file_to_save_urls = 'urls.txt'; //В этот файлик сохранятся все url'ы

//Ядерный реактор. Без защитного костюма и спецподготовки доступ запрещен!
header("Content-Type: text/html; charset=windows-1251");
ob_implicit_flush();
set_time_limit(0);
function t($t, $d=0) {echo '<pre>';print_r($t);echo '</pre>';if ($d==0) exit();}
function get($url='') {  
    $cl = curl_init();
    curl_setopt($cl, CURLOPT_URL, $url);
    curl_setopt($cl, CURLOPT_HEADER, 1);
    curl_setopt($cl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($cl, CURLOPT_TIMEOUT, 15);
    curl_setopt($cl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
    $ex=curl_exec($cl);  
    curl_close($cl);  
    return $ex;  
}
function file2array($file) {return array_diff(array_map('trim', file($file)), array(''));}
function save($file, $data) {
    $o = (file_exists($file) && filesize($file) > 0) ? chr(10) : '';
    $f = fopen($file, 'a+');
    fwrite($f, $o.$data);
    fclose($f);
    return count(file2array($file));
}
$html = get($liru_url);
preg_match_all('!page=(.*)"!Usi', $html, $m);
$m = array_unique($m[1]);
$pcount = end($m);
echo "Нашли $pcount страниц. Парсим... <br>";
preg_match_all('!<a.*href="http://(.*)" class=a1>.*</a>!Usi', $html, $m);
$m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'http://'.$v;
$allnum = save($file_to_save_urls, implode(chr(10), $m));
$numsave = count($m);
echo "[1] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
for ($i=2; $i<=$pcount; $i++) {
    $html = get($liru_url.'index.htnl?page='.$i);
    preg_match_all('!<a.*href="http://(.*)" class=a1>.*</a>!Usi', $html, $m);
    $m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'http://'.$v;
    $allnum = save($file_to_save_urls, implode(chr(10), $m));
    $numsave = count($m);
    echo "[$i] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
}
echo 'Конечная обработка файла... ';
$arr = file2array($file_to_save_urls);
$arr = array_unique($arr);
file_put_contents($file_to_save_urls, implode(chr(10), $arr));
echo '[ГОТОВО]';
?>


Всех с Рождеством Христовым!!! laugh.gif
Если кто может помочь, не откажусь отблагодарить парой баксами)


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gentvol
gentvol
Topic Starter сообщение 8.1.2014, 15:17; Ответить: gentvol
Сообщение #4


Частый гость
**

Группа: User
Сообщений: 83
Регистрация: 2.6.2012
Поблагодарили: 15 раз
Репутация:   3  


Ребят, ну разве никто не может помочь? На этом форуме всегда куча спецов...


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
setka_gs
setka_gs
сообщение 8.1.2014, 15:59; Ответить: setka_gs
Сообщение #5


Частый гость
**

Группа: User
Сообщений: 70
Регистрация: 4.3.2013
Поблагодарили: 13 раз
Репутация:   1  


Поправил на скорую руку.

<?php
$liru_url = 'http://www.liveinternet.ru/rating/ru/genealogy/'; //URL категории рейтинга, которую будем парсить (слэш "/" на конце ссылки обязателен!)
$file_to_save_urls = 'urls.txt'; //В этот файлик сохранятся все url'ы

//Ядерный реактор. Без защитного костюма и спецподготовки доступ запрещен!
header("Content-Type: text/html; charset=windows-1251");
ob_implicit_flush();
set_time_limit(0);
function t($t, $d=0) {echo '<pre>';print_r($t);echo '</pre>';if ($d==0) exit();}
function get($url='') {  
    $cl = curl_init();
    curl_setopt($cl, CURLOPT_URL, $url);
    curl_setopt($cl, CURLOPT_HEADER, 1);
    curl_setopt($cl, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($cl, CURLOPT_TIMEOUT, 15);
    curl_setopt($cl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($cl, CURLOPT_USERAGENT, 'Opera/9.25 (Windows NT 5.1; U; ru)');
    $ex=curl_exec($cl);  
    curl_close($cl);  
    return $ex;  
}
function file2array($file) {return array_diff(array_map('trim', file($file)), array(''));}
function save($file, $data) {
    $o = (file_exists($file) && filesize($file) > 0) ? chr(10) : '';
    $f = fopen($file, 'a+');
    fwrite($f, $o.$data);
    fclose($f);
    return count(file2array($file));
}
$html = get($liru_url);
preg_match_all('!page=(.*)"!Usi', $html, $m);
$m = array_unique($m[1]);
$pcount = end($m);
echo "Нашли $pcount страниц. Парсим... <br>";
//preg_match_all('!<a.*href="http://(.*)">.*</a>!Usi', $html, $m);
preg_match_all('#href="http://(.*?)">.*</a>#i', $html, $m);
$m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'http://'.$v;
//print_r($m);
$allnum = save($file_to_save_urls, implode(chr(10), $m));
$numsave = count($m);
echo "[1] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
for ($i=2; $i<=$pcount; $i++) {
    $html = get($liru_url.'index.html?page='.$i);
    //preg_match_all('!<a.*href="http://(.*)" class=a1>.*</a>!Usi', $html, $m);
    preg_match_all('#href="http://(.*?)">.*</a>#i', $html, $m);
    $m = array_unique($m[1]); foreach($m as $k=>$v) $m[$k] = 'http://'.$v;
    $allnum = save($file_to_save_urls, implode(chr(10), $m));
    $numsave = count($m);
    echo "[$i] сохранено в файл <b>$numsave</b> ссылок, итого на текущий момент <b>$allnum</b> ссылок.<br>";
}
echo 'Конечная обработка файла... ';
$arr = file2array($file_to_save_urls);
$arr = array_unique($arr);
file_put_contents($file_to_save_urls, implode(chr(10), $arr));
echo '[ГОТОВО]';
?>


(setka_gs @ 8.1.2014, 15:46) *
$html = get($liru_url.'index.htnl?page='.$i);


Каким образом он у вас работал то smile.gif исправить на
$html = get($liru_url.'index.html?page='.$i);


Иначе по страницам не преходит...

А ссылки не переносить при переходе страницы это изначально так задуманно было... ?

Сообщение отредактировал setka_gs - 8.1.2014, 16:02


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gentvol
gentvol
Topic Starter сообщение 8.1.2014, 16:21; Ответить: gentvol
Сообщение #6


Частый гость
**

Группа: User
Сообщений: 83
Регистрация: 2.6.2012
Поблагодарили: 15 раз
Репутация:   3  


setka_gs, спасибище тебе огромное!!!

Может я протупил где то. Даже не представляю как, но раньше он работал...


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите выбрать ноутбук
Ноутбук для детей
15 kstnews 323 Сегодня, 8:29
автор: kstnews
Открытая тема (нет новых ответов) Маленький кейс как сделать много почтовых ящиков в Gmail
Один аккаунт = много ящиков
11 PostBrigada 742 Сегодня, 2:50
автор: kstnews
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыГде взять скрипт круговой индикатор выполнения
3 slavyn 466 14.12.2017, 22:55
автор: Caterpillar
Открытая тема (нет новых ответов) Помогите выбрать программу
Помогите выбрать программу
11 impak 1356 11.12.2017, 13:11
автор: Mikki
Открытая тема (нет новых ответов) Помогите найти плагин на WP
Отзывы с профилей соц сетей
1 SEOMR 450 30.11.2017, 7:18
автор: Nell


 



RSS Текстовая версия Сейчас: 18.12.2017, 9:38
Дизайн