Помощник
|
Помогите поправить маленький скрипт парсера., Когда то работал, а сейчас не хочет. |
gentvol
|
Сообщение
#1
|
||
|
|
||
|
|||
blackintenum |
7.1.2014, 0:25;
Ответить: blackintenum
Сообщение
#2
|
|
gentvol, выложи сюда исходником...
|
|
|
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 '[ГОТОВО]'; ?> Всех с Рождеством Христовым!!! Если кто может помочь, не откажусь отблагодарить парой баксами) -------------------- |
|
|
gentvol
|
Сообщение
#4
|
|
Ребят, ну разве никто не может помочь? На этом форуме всегда куча спецов...
-------------------- |
|
|
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 '[ГОТОВО]'; ?> $html = get($liru_url.'index.htnl?page='.$i); Каким образом он у вас работал то исправить на $html = get($liru_url.'index.html?page='.$i); Иначе по страницам не преходит... А ссылки не переносить при переходе страницы это изначально так задуманно было... ? Сообщение отредактировал setka_gs - 8.1.2014, 16:02 -------------------- |
|
|
gentvol
|
Сообщение
#6
|
|
|
setka_gs, спасибище тебе огромное!!!
Может я протупил где то. Даже не представляю как, но раньше он работал...
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Помогите вспомнить рекламного бота Телеграм для обмена рекламой | 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 | 7832 | 26.3.2023, 8:54 автор: Palundra |
|
Продам скрипт перевода постов и комментариев | 4 | Tutich | 786 | 19.1.2023, 17:23 автор: Tutich |
|
Битрикс скрипт нативной установки | 3 | Nemo | 2451 | 20.11.2022, 10:09 автор: Webmaster24 |
Текстовая версия | Сейчас: 19.4.2024, 11:07 |