Есть список из 1000 URL одного сайта. Часть страниц работают, часть не работают.
Как можно быстро узнать рабочие / нерабочие URL ?
Как из списка URL одного сайта узнать рабочие / не рабочие страницы?
(Ответов: 4, Просмотров: 772)
- 24.09.2016 11:47Дипломник


- Регистрация: 21.07.2014
- Сообщений: 207
- Репутация: 7
- 24.09.2016 13:19
Xenu попробуйте.
Либо через скрипт php - если отдают правильный 404 (header), то отлавливать.
Или через попытку "достучаться" (php) в определенный лимит времени - если нет, то и нет. - 24.09.2016 14:06
я юзал скрипт для проверки урлов, происхождение которого не помню. Какой то добрый человек у себя на блоге его когда-то выложил.
LinksList.txt - список ваших 1000 URLPHP код:<?php
$count =100;
define( 'ABSPATH', dirname(__FILE__) . '/' );
define('MAXPROCESS',$count);
//fetch();
//echo parser($url);
$good=fopen(ABSPATH.'z_good.txt',"a");
$good200ok=fopen(ABSPATH.'z_200ok.txt',"a");
$bad=fopen(ABSPATH.'z_bad.txt',"a");
$handle=fopen(ABSPATH.'LinksList.txt',"r");
$execute=0;
while(!feof($handle)){
$url=trim(fgets($handle));
//var_dump(parser($url));
$data=array();
###################форкаемся#######################
$pid=pcntl_fork();
//exit();
if($pid==-1){
}elseif ($pid){
$execute++;
if ($execute>=MAXPROCESS){
pcntl_wait($status);
$execute--;
}
}else{
###################джобим#######################
$data=parser($url);
if(!$data){
fwrite($bad,$url."\n");
exit();
}else{
fwrite($good,$data['url'].';'.$data['http_code']."\n");
if($data['http_code']=='200'){
fwrite($good200ok,$data['url']."\n");
}
}
##################конец джоба#################
exit();
}
}
$i_wait=true;
while ($i_wait){
$waii=pcntl_wait($status);
if($waii==-1) $i_wait=false;
}
function parser($url){
$return_data=array();
$return_data=fetch($url);
return $return_data;
}
function fetch($url,$timeout=20,$proxy='',$curlopt_header=false){
if(!gethostbyname($url)){
return false;
}
$return_data=array();
$headers[]='User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729)';
$headers[]= 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
$headers[]= 'Accept-Language: en-us;q=0.7,en;q=0.3';
$headers[]= 'Accept-Encoding: gzip,deflate';
$headers[]= 'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7';
$headers[]= 'Keep-Alive: 300';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
if($proxy!=''){
curl_setopt($ch, CURLOPT_PROXY, $proxy);
}
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, $curlopt_header);
curl_setopt($ch, CURLOPT_REFERER,'');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 2);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
if(curl_exec($ch)!=false){
$return_data['reply'] =true;
}else{
return false;
//$return_data['reply'] =false;
}
//$return_data['reply'] = curl_exec($ch);
$info = (curl_getinfo($ch));
curl_close($ch);
//print_r($info);
$return_data['url']=$info['url'];
$return_data['http_code']=$info['http_code'];
return $return_data;
}
?>Спасибо сказали:
kreo-tiff(25.09.2016), - 24.09.2016 15:23Дипломник


- Регистрация: 21.07.2014
- Сообщений: 207
- Репутация: 7
скриптами не умею)) я не программист. Желательно проще способы
- 24.09.2016 16:28
ну, в хрумере есть масс-проверка заголовков или контента
либо бесплатной лягушкой https://www.screamingfrog.co.uk/seo-spider/Спасибо сказали:
kreo-tiff(25.09.2016),
Похожие темы
| Темы | Раздел | Ответов | Последний пост |
|---|---|---|---|
Кросспостинг в Pinterest: какие существуют рабочие решения? | Вопросы от новичков | 0 | 29.08.2016 00:01 |
Форум: Рабочие методики | Вопросы от новичков | 1 | 01.01.2015 12:12 |
Рабочие способы получения рбочих ссылок ... | Вопросы от новичков | 13 | 04.05.2013 18:20 |
Рабочие скрипты голосования | Софт, скрипты, сервисы | 1 | 24.10.2012 00:17 |
Есть еще рабочие парсеры на WP? | Софт, скрипты, сервисы | 5 | 21.05.2012 23:59 |



