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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


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

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


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


gentvol, выложи сюда исходником...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gentvol
gentvol
Topic Starter сообщение 7.1.2014, 11:39; Ответить: gentvol
Сообщение #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
Если кто может помочь, не откажусь отблагодарить парой баксами)


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


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


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


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

<?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


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

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Помогите вспомнить рекламного бота Телеграм для обмена рекламой
0 Mixatraider 725 21.2.2024, 23:42
автор: Mixatraider
Открытая тема (нет новых ответов) Скрипт поисковика видео StrongTube
3 3josoft 1574 14.8.2023, 14:45
автор: 3josoft
Открытая тема (нет новых ответов) Скрипт приема платежей p2p с карты на карту card2card
Скрипт приема платежей p2p с карты на карту card2card
15 zladey1986 7834 26.3.2023, 8:54
автор: Palundra
Открытая тема (нет новых ответов) Продам скрипт перевода постов и комментариев
4 Tutich 787 19.1.2023, 17:23
автор: Tutich
Открытая тема (нет новых ответов) Битрикс скрипт нативной установки
3 Nemo 2451 20.11.2022, 10:09
автор: Webmaster24


 



RSS Текстовая версия Сейчас: 20.4.2024, 3:21
Дизайн