|
|
![]() RedSquare Свой |
Зарегистрирован: 06.12.2008
Сообщений: 77
|
Обратиться по нику
|
RedSquare |
Ответить с цитатой | | |
|
Есть база (текстовый файл с ~10k сайтов вида xxxxx.com одна строка = один сайт)
Задача - проверить эту базу,и вытащить из неё все сайты сделанные на цмс Data Life Engine.
Может знает кто варианты ? Кроме "перебрать всё руками" Ж)) |
|
|
|
|
|
|
![]() zyxel05 Гуру |
Зарегистрирован: 22.11.2006
Сообщений: 1460
|
Обратиться по нику
|
|
|
Блог снова новичка  |
![]() RedSquare Свой |
Зарегистрирован: 06.12.2008
Сообщений: 77
|
Обратиться по нику
|
RedSquare |
Ответить с цитатой | | |
|
В томто и дело что купил (повёлся на "собрано руками,всё проверено" ,а там оказалось нереальное количество мусора,начиная от вобще левых сайтов,заканчивая 404 Not found )
Решил сделать так - взял её + ещо набрал много баз разных (из открытых источников),с помощью YCCY проверил на индексированность яндексом. Сейчас из того что осталось хочу вытащить всё что DLE |
|
|
|
|
|
|
![]() Cabal Гуру |
Зарегистрирован: 20.10.2007
Сообщений: 1360
|
Обратиться по нику
|
Cabal |
Ответить с цитатой | | |
|
Код: |
<?php
set_time_limit(0);
$priznak='{сюда признак движка}';
$fileUrls='{cюда название файла содержащего урлы по одному на строку}';
$urls=file($fileUrls);
foreach($urls as $url){
$referer='http://www.upyachka.ru';
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_REFERER, "$referer");
curl_setopt($curl, CURLOPT_URL, "$url");
$xxx = curl_exec($curl);
if(strstr($xxx, $priznak)){
$array[]=$url;
}else{
$bad[]=$url;
}
curl_close($curl);
}
file_put_contents('good.txt', implode('', $array));
file_put_contents('bad.txt', implode('', $bad));
print "OK!";
?>
|
Смортим какие одинаковые строчки в коде содержат сайты построенные на DLE и не содержат другие сайты и добавляем их вместо строчки "{сюда признак движка}". В папку со скриптом кладём файл с урлами сайтов по одному на строку добавляем его название вместо второй подстановки и запускаем скрипт. Естественно PHP должен иметь место быть на компе. Либо запускайте скрипт на хостинге с PHP. Ну и разумеется в good.txt забираем то что нам нужно, а в bad.txt смотрим на всякий мусор. |
|
Последний раз редактировалось: Cabal (Пт Dec 26, 2008 10:17 pm), всего редактировалось 1 раз |
|
|
|
|
Cabal - патентованный зануда. |
![]() RedSquare Свой |
Зарегистрирован: 06.12.2008
Сообщений: 77
|
Обратиться по нику
|
RedSquare |
Ответить с цитатой | | |
|
Cabal спасибо,но при попытке запустить на денвере этот php файл просто выводит свой код и всё (( Может ещо чтото надо было дописать ? |
|
|
|
|
|
|
![]() Cabal Гуру |
Зарегистрирован: 20.10.2007
Сообщений: 1360
|
Обратиться по нику
|
Cabal |
Ответить с цитатой | | |
|
А-а-а ну я и слажал
Так всё расписал пипец что делать а обычные "<?" "?>" забыл в начале и в конце добавить когда скрипт копировал и втавлял.
Поправил. |
|
|
|
|
|
Cabal - патентованный зануда. |
![]() RedSquare Свой |
Зарегистрирован: 06.12.2008
Сообщений: 77
|
Обратиться по нику
|
RedSquare |
Ответить с цитатой | | |
|
Код: |
<?php
set_time_limit(0);
$priznak='{<div id=’dle-content’>}';
$fileUrls='{base.txt}';
$urls=file($fileUrls);
foreach($urls as $url){
$referer='http://www.upyachka.ru';
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_REFERER, "$referer");
curl_setopt($curl, CURLOPT_URL, "$url");
$xxx = curl_exec($curl);
if(strstr($xxx, $priznak)){
$array[]=$url;
}else{
$bad[]=$url;
}
curl_close($curl);
}
file_put_contents('good.txt', implode('', $array));
file_put_contents('bad.txt', implode('', $bad));
print "OK!";
?>
|
Warning: file({base.txt}) [function.file]: failed to open stream: No such file or directory in Z:\home\localhost\www\1.php on line 5
Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\1.php on line 6
Warning: implode() [function.implode]: Bad arguments. in Z:\home\localhost\www\1.php on line 25
Warning: implode() [function.implode]: Bad arguments. in Z:\home\localhost\www\1.php on line 26
OK!
хотя base.txt (нефилтрованная база) лежит в тойже папке... |
|
|
|
|
|
|
![]() Cabal Гуру |
Зарегистрирован: 20.10.2007
Сообщений: 1360
|
Обратиться по нику
|
Cabal |
Ответить с цитатой | | |
|
вот эти скобочки {} - это символ подстановки. Они для тебя, а не для скрипта. Вот так сделай чтоб было 'base.txt'(одинарные или двойные кавычки нужны).
И это. Односторонних апострофов которые ты поставил во второй подстановке в HTML нету. Надо писать прямо как в коде написано. Если кавычки одинарные то просто используй их внутри двойных вот так "<div id='dle-content'>". |
|
|
|
|
|
Cabal - патентованный зануда. |
![]() Cabal Гуру |
Зарегистрирован: 20.10.2007
Сообщений: 1360
|
Обратиться по нику
|
Cabal |
Ответить с цитатой | | |
|
Код: |
<?php
set_time_limit(0);
$priznak="<div id='dle-content'>";
$fileUrls="base.txt";
$urls=file($fileUrls);
foreach($urls as $url){
$referer='http://www.upyachka.ru/';
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_TIMEOUT, 30);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_REFERER, $referer);
curl_setopt($curl, CURLOPT_URL, $url);
$xxx = curl_exec($curl);
if(strstr($xxx, $priznak)){
$array[]=$url;
}else{
$bad[]=$url;
}
curl_close($curl);
}
file_put_contents('good.txt', implode('', $array));
file_put_contents('bad.txt', implode('', $bad));
print "OK!";
?>
|
Короче вот я тебе поправил. |
|
|
|
|
|
Cabal - патентованный зануда. |
![]() RedSquare Свой |
Зарегистрирован: 06.12.2008
Сообщений: 77
|
Обратиться по нику
|
RedSquare |
Ответить с цитатой | | |
|
Fatal error: Call to undefined function curl_init() in Z:\home\localhost\www\1.php on line 8
Неужели на денвере нет curl ? Или это не из-за этого ? |
|
|
|
|
|
|
![]() Cabal Гуру |
Зарегистрирован: 20.10.2007
Сообщений: 1360
|
Обратиться по нику
|
Cabal |
Ответить с цитатой | | |
|
Я вчера когда исправлял скрипт проверил на его на урле сайта dle-news. Он работает 100% причём именно тот который здесь(я его уже отсюда копипастил).
По поводу Денвера ничего сказать не могу я его использовал неделю в жизни и очень давно. |
|
|
|
|
|
Cabal - патентованный зануда. |
|
|
Партнеры
|