EOMY.NET на главную
|
EOMY.NET Хостинг EOMY.NET: Форум поддержки
|
|
[mywhois.net.ru]whois-сервис с проверкой тИЦ,PR,ЯК, склейки
|
| Автор |
Сообщение |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 1753
22894 
|
Добавлено: Пт, 18 Июл, 2008 17:14 Заголовок сообщения: |
|
|
Веденин
Про регулярки: я пока с ними не столкнулся, не понимал их преимущества. они точнее, да и ресурсов кушают не намного больше, а если еще и генерировать исходящие соединения то регулярки - вообще мизер. _________________ ps.int.ru - блог, Lwhois - Удобный whois для windows | whois-сервис с дополнительными возможностями
регистрация доменов RU-150р - в ЛС |
|
| Вернуться к началу |
|
 |
Веденин Три пингвина


Зарегистрирован: 17.05.2007 Сообщения: 428 Откуда: Самара 22643 
|
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 1753
22894 
|
Добавлено: Сб, 19 Июл, 2008 17:59 Заголовок сообщения: |
|
|
Веденин
выводятся как один, а показатели отдаются разные.
// в песочнице(tools.mywhois.name) новый сервис - проверка кодов ответа сервера.
tip: ответ сервера выводится в коментах к html-коду. _________________ ps.int.ru - блог, Lwhois - Удобный whois для windows | whois-сервис с дополнительными возможностями
регистрация доменов RU-150р - в ЛС |
|
| Вернуться к началу |
|
 |
Веденин Три пингвина


Зарегистрирован: 17.05.2007 Сообщения: 428 Откуда: Самара 22643 
|
Добавлено: Сб, 19 Июл, 2008 18:00 Заголовок сообщения: |
|
|
| lazutov писал(а): | | Про регулярки: я пока с ними не столкнулся, не понимал их преимущества. они точнее, да и ресурсов кушают не намного больше, а если еще и генерировать исходящие соединения то регулярки - вообще мизер. |
Для получения всех ссылок на странице Я написал такой скрипт
надо найти '<a ' передать текст страницы и индекс '<a ' в workTeg
функция вернет массив в котором $arrayteg['href'] и будет адрес ссылки. ИМХО это лучше регулярки, особенно если нужно дополнительно узнать например наличие атрибута noflow
| Код: |
# Обработка тега HTML
function workTeg($pstr,&$i){
$arrayteg = array();
$arrayteg['0'] = getName($pstr,$i);
if(!getFirstChar($pstr,$i)) return;
$j = 0;
while($i<=strlen($pstr)){
if(!getFirstChar($pstr,$i)) return $arrayteg;
$tmp = getName($pstr,$i);
$arrayteg[$tmp]="";
if(strlen($tmp)>0){
if(!getFirstChar($pstr,$i)) return $arrayteg;
if($pstr[$i] == "=") {
$i++;
if(!getFirstChar($pstr,$i)) return $arrayteg;
$arrayteg[$tmp]=getProperty($pstr,$i);
}
} else {$i++;}
$j++;
}
return $arrayteg;
}
# Получение первого символа
function getFirstChar($pstr,&$i){
while($i<=strlen($pstr) && $pstr[$i] != '>' && $pstr[$i] != '<') {
if(!isSpace($pstr[$i],$i)) {
return true;
}
$i++;
}
return false;
}
# Получение имени тега или атрибута
function getName($pstr,&$i){
$tmp = '';
while($i<=strlen($pstr) && isChar($pstr[$i],$i)) {
$tmp .= $pstr[$i];
$i ++;
}
return $tmp;
}
# Получение атрибута
function getProperty($pstr,&$i){
if($pstr[$i]!='"' && $pstr[$i]!="'"){
return getName($pstr,$i);
} else {
$tmp = $pstr[$i]; $i++; $tmp1 = "";
while($pstr[$i] != $tmp && $i<=strlen($pstr)) {
$tmp1 .= $pstr[$i];
$i++;
}
$i++;
return $tmp1;
}
}
# Проверка символ ли
function isChar($pchar,&$i){
return ($pchar>='a' && $pchar<='z') || ($pchar>='A' && $pchar<='Z') || ($pchar>='0' && $pchar<='9') || $pchar == '-' || $pchar == '.' || $pchar == '!';
}
# Проверка пробел ли
function isSpace($pchar,&$i){
return $pchar <= " ";
}
|
_________________ Тематические поисковые системы Рунета: Танцевальная, программиста, поиск книг, спортивная, энциклопедическая, поиск музыки и видео и много других |
|
| Вернуться к началу |
|
 |
Веденин Три пингвина


Зарегистрирован: 17.05.2007 Сообщения: 428 Откуда: Самара 22643 
|
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 1753
22894 
|
Добавлено: Пн, 21 Июл, 2008 08:07 Заголовок сообщения: |
|
|
Вот как всегда.
сначала курю свои мозги этим:
| Код: |
<?
$file=file_get_contents('http://client.alexa.com/common/css/scramble.css');
$file=str_replace(' {','',$file);
$file=str_replace("display: none\n",'',$file);
$file=str_replace("}\n",'',$file);
$file=str_replace(".",'',$file);
//echo $file;
$file=explode("\n",$file);
$file=str_replace("\n",'',$file);
$url='eomy.net';
$page=file_get_contents('http://www.alexa.com/data/details/main/'.$url);
preg_match_all('|<a href="/data/details/traffic_details/'.$url.'">(.*?)</a>|is',$page,$page);
$page=$page[1][1];
$cnt=preg_match_all('|<span class="([0-9a-z]{4})">([0-9,]{1,})</span>|is',$page,$spans);
//echo '<pre>'; var_dump ($spans); echo '</pre>';
$res='';
for ($i=0;$i<$cnt;$i++) {if (array_search($spans[1][$i],$file)!==false) $page=str_replace($spans[0][$i],'',$page); else $page=str_replace($spans[0][$i],$spans[2][$i],$page); }
//echo $page;
preg_match('|<span class="descBold"><!--(.*?)-->(.*?)</span>|is',$page,$res);
//echo '<pre>'; var_dump ($res); echo '</pre>';
echo $res[2];
?>
|
ибо | Цитата: | | <span class="descBold"><!--Did you know? Alexa offers this data programmatically. Visit http://aws.amazon.com/awis for more information about the Alexa Web Information Service.--><span class="c290">70</span><span class="c1e0">29</span><span class="c04f">7,</span>6<span class="c1c0">97</span>3<span class="ce69">0</span></span> |
потом мысль бьет в мозг:
http://data.alexa.com/data?cli=10&dat=snbamz&url=eomy.net _________________ ps.int.ru - блог, Lwhois - Удобный whois для windows | whois-сервис с дополнительными возможностями
регистрация доменов RU-150р - в ЛС |
|
| Вернуться к началу |
|
 |
Веденин Три пингвина


Зарегистрирован: 17.05.2007 Сообщения: 428 Откуда: Самара 22643 
|
|
| Вернуться к началу |
|
 |
lazutov $a ||= 5;


Зарегистрирован: 30.04.2007 Сообщения: 1753
22894 
|
Добавлено: Пн, 21 Июл, 2008 11:02 Заголовок сообщения: |
|
|
<span class= ... - так отдается TrafficRank
---
Часть классов в CSS имеет атрибут display: none
| Код: | $file=file_get_contents('http://client.alexa.com/common/css/scramble.css');
$file=str_replace(' {','',$file);
$file=str_replace("display: none\n",'',$file);
$file=str_replace("}\n",'',$file);
$file=str_replace(".",'',$file);
//echo $file;
$file=explode("\n",$file);
$file=str_replace("\n",'',$file); |
>
Получили массив File, где эти классы перечисленны.
| Код: | $page=file_get_contents('http://www.alexa.com/data/details/main/'.$url);
preg_match_all('|<a href="/data/details/traffic_details/'.$url.'">(.*?)</a>|is',$page,$page);
$page=$page[1][1]; |
получили часть страницы, где и есть TrafficRank
| Код: | | $cnt=preg_match_all('|<span class="([0-9a-z]{4})">([0-9,]{1,})</span>|is',$page,$spans); |
забрали классы
и
| Код: | | for ($i=0;$i<$cnt;$i++) {if (array_search($spans[1][$i],$file)!==false) $page=str_replace($spans[0][$i],'',$page); else $page=str_replace($spans[0][$i],$spans[2][$i],$page); } |
Удалили все, что имеет display: none а также теги span.
в итоге от PAGE остаетеся
| Цитата: | | <span class="descBold"><!--Did you know? Alexa offers this data programmatically. Visit http://aws.amazon.com/awis for more information about the Alexa Web Information Service.-->_ТУТ_TRAFFIC RANK____</span> |
далее забирает нужное значение. _________________ ps.int.ru - блог, Lwhois - Удобный whois для windows | whois-сервис с дополнительными возможностями
регистрация доменов RU-150р - в ЛС |
|
| Вернуться к началу |
|
 |
|
Powered by phpBB © 2001, 2005 phpBB Group
|