Массовая проверка наличия ссылки - Форум успешных вебмастеров - GoFuckBiz.com
 
 
Форум успешных вебмастеров - GoFuckBiz.com

  Форум успешных вебмастеров - GoFuckBiz.com > Бизнес-решения > Скрипты, программы и технические решения
Дата
USD/RUB93.4409
BTC/USD62668.9284
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии.

Закрытая тема
Опции темы Опции просмотра
Старый 26.12.2011, 02:32   #1
iloveadult
Senior
 
Аватар для iloveadult
 
Регистрация: 24.09.2008
Сообщений: 2,717
Бабло: $519695
По умолчанию Массовая проверка наличия ссылки

Сабж, нужно кормить листы урлов и чтобы софт чекал наличие указаной ссылки. Или хотя бы домена.
Базы не очень большие, поэтому прокси и прочие плюшки не нужны.
Главное - простота. Есть такая фича в хрумере, но каждый раз - напрягает.

сервер/винда - не важно.
спасибо
__________________
Top Links - качественные ссылки для Ваших сайтов
[UA] Моментальный вывод WM и других валют с лучшим курсом 24/7!
iloveadult вне форума  
Старый 26.12.2011, 02:49   #2
LeXxiK
Senior Member
 
Аватар для LeXxiK
 
Регистрация: 03.03.2008
Сообщений: 2,274
Бабло: $263105
По умолчанию

Код:
<?
$url="http://yandex.ru";
$links=file_get_contents("links.txt");
$links=explode("\r\n",$links);
$kol=count($links);
for ($i=0;$i<$kol;$i++) {
$c=file_get_contents($links[$i]);
$ok=strpos($c,$url);
if ($ok) {
$result.=$links[$i]."\r\n";
} else {
$result2.=$links[$i]."\r\n";
}
unset($ok);
}
$file=fopen("yes.txt","a+");
fputs($file,$result);
fclose($file);
$file=fopen("no.txt","a+");
fputs($file,$result2);
fclose($file);
?>
В первой строке урл, который ищем, в links.txt по 1 урлу на строке, где искать
в yes.txt будут урлы где нашли
в no.txt где не нашли
на папку со скриптом права 777
написал щас по пьяни, но должно работать))
LeXxiK вне форума  
Старый 26.12.2011, 03:10   #3
sqk
Senior Member
 
Аватар для sqk
 
Регистрация: 29.04.2010
Сообщений: 439
Бабло: $76039
По умолчанию

вот под винду, сам юзаю все ок
http://www.sendspace.com/file/65clkp
sqk вне форума  
Старый 26.12.2011, 04:07   #4
Drunk Monk
Je suis moine ivre
 
Аватар для Drunk Monk
 
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
По умолчанию

PHP код:
<?
$myshit
="http://govno.com";
$ok=array();

$pages=array_map("trim"file("pages.txt"));

for(
$i=0;$i<count($pages);$i++){
    if(
substr_count(file_get_contents($pages[$i]), $myshit)>0array_push($ok$pages[$i]);
}

if(
count($ok)>0){
    echo 
implode("<br>"$ok);
}
?>
В $ok массивом те, где урл есть. Но не гарантирует именно тег ссылки.
Drunk Monk вне форума  
Старый 26.12.2011, 04:39   #5
mirikas
Senior Member
 
Аватар для mirikas
 
Регистрация: 25.12.2008
Сообщений: 1,099
Бабло: $272735
По умолчанию

чекпарамс такое делает, и довольно отлично и успешно
mirikas вне форума  
Старый 26.12.2011, 04:40   #6
iloveadult
Senior
 
Аватар для iloveadult
 
Регистрация: 24.09.2008
Сообщений: 2,717
Бабло: $519695
ТС -->
автор темы ТС По умолчанию


всем спасибо, буду пробовать!
__________________
Top Links - качественные ссылки для Ваших сайтов
[UA] Моментальный вывод WM и других валют с лучшим курсом 24/7!
iloveadult вне форума  
Старый 26.12.2011, 10:18   #7
D.N.
Member
 
Аватар для D.N.
 
Регистрация: 20.09.2008
Сообщений: 50
Бабло: $12790
По умолчанию

Хрумером ещё можно. Инструменты - анализатор базы ссылок
D.N. вне форума  
Старый 26.12.2011, 10:36   #8
mavook
Профи Интернет коммерции
 
Аватар для mavook
 
Регистрация: 04.04.2007
Сообщений: 2,344
Бабло: $456535
По умолчанию

Цитата:
Сообщение от Drunk Monk Посмотреть сообщение
PHP код:
<?
$myshit
="http://govno.com";
$ok=array();

$pages=array_map("trim"file("pages.txt"));

for(
$i=0;$i<count($pages);$i++){
    if(
substr_count(file_get_contents($pages[$i]), $myshit)>0array_push($ok$pages[$i]);
}

if(
count($ok)>0){
    echo 
implode("<br>"$ok);
}
?>
В $ok массивом те, где урл есть. Но не гарантирует именно тег ссылки.
$myshit="href=\"http://govno.com";
тогда будет ссылки но не гарантирует опять же что не nofollow
mavook вне форума  
Старый 26.12.2011, 10:45   #9
xatman
Особый статус
 
Аватар для xatman
 
Регистрация: 05.10.2007
Сообщений: 771
Бабло: $163646
По умолчанию

Лови на мультикурл
PHP код:
set_time_limit(0);
error_reporting(E_ALL);

$time_start time();

$cmh curl_multi_init();

$tasks = array();

$agents = array(
            
'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)',
            
'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.84 Safari/534.13',
            
'Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 AlexaToolbar/alxf-2.01 Firefox/3.6.13',
            
'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)'
            
);
$count_agents count($agents);

$proxies = array();

$counter 0;
foreach (
$urls as $url)
{

    
$rand_proxy[$url] = $proxies[$counter];//echo $rand_proxy.'<br>';

    
$rand_index mt_rand(0,($count_agents-1));
    
$agent[$url] = $agents[$rand_index];

    
$ch curl_init('http://'.$url);
    
$referer_url 'http://www.google.com/';
    
curl_setopt($chCURLOPT_NOSIGNAL1);
    
curl_setopt($chCURLOPT_NOPROGRESS1);
    
curl_setopt($chCURLOPT_FAILONERROR1);
    
curl_setopt($chCURLOPT_URL$url);
    
curl_setopt($chCURLOPT_REFERER$referer_url);
    
curl_setopt($chCURLOPT_USERAGENT$agent[$url]);
    
curl_setopt($chCURLOPT_SSL_VERIFYPEER0);
    
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    
curl_setopt($chCURLOPT_MAXREDIRS1);
    
curl_setopt($chCURLOPT_TIMEOUT90);
    
curl_setopt($chCURLOPT_PROXY$rand_proxy[$url]);
    
curl_setopt($chCURLOPT_RETURNTRANSFER1);

    
$tasks[$url] = $ch;
    
curl_multi_add_handle($cmh$ch);
}

$active null;

do {
        
$mrc curl_multi_exec($cmh$active);
}
while (
$mrc == CURLM_CALL_MULTI_PERFORM);

while (
$active && ($mrc == CURLM_OK))
{

    if (
curl_multi_select($cmh) != -1)
    {

        do {
            
$mrc curl_multi_exec($cmh$active);
            
$info curl_multi_info_read($cmh);
            if (
$info['msg'] == CURLMSG_DONE)
            {
                
$ch $info['handle'];
                
$url array_search($ch$tasks);
                
$tasks[$url] = curl_multi_getcontent($ch);// забираем содержимое
                
$gets[$url] = curl_getinfo($chCURLINFO_HTTP_CODE);
                
curl_multi_remove_handle($cmh$ch);// удаляем поток из мультикурла
                
curl_close($ch);// закрываем отдельное соединение (поток)
            
}
        }
        while (
$mrc == CURLM_CALL_MULTI_PERFORM);
    }
}

curl_multi_close($cmh);// закрываем мультикурл

$query '';
while(list(
$url,$contents) = each($tasks))
{

    if(
$gets[$url] == 200 or $gets[$url] == 201)
    {
        if (
$contents != '')
        {

            
preg_match("!your_url!si",$contents,$matches);

            
$in_google 0;
            if(isset(
$matches[1]))
            {
                echo 
$url.' has your_url<br>';
            }
            else
            {
                echo 
$url.' - WHERE IS MY FUCKING URL?<br>';
            }
        }
    }
    else
    {
        echo 
$url.' dead '.$gets[$url].'<br>'
    }
}
echo 
"<br>Working ".(time()-$time_start)." s.<br>"
В массив $urls забиваем список ссылок для проверки.
your_url - меняешь на свою ссылку.
Может где и ошибка - т.к. брал из своего скрипта и удалял военные данные.
__________________
EvaPharmacy - лучшая фарма партнерка (ICQ: 750000 Jabber: [email protected]) / Помощь детям.
xatman вне форума  
Старый 26.12.2011, 12:21   #10
Drunk Monk
Je suis moine ivre
 
Аватар для Drunk Monk
 
Регистрация: 03.03.2009
Сообщений: 15,268
Бабло: $797172957
По умолчанию

Цитата:
Сообщение от mavook Посмотреть сообщение
$myshit="href=\"http://govno.com";
тогда будет ссылки но не гарантирует опять же что не nofollow
А если не " а ' ?
Drunk Monk вне форума