[Архив] запросы при парсинге

Статус
В этой теме нельзя размещать новые ответы.
Ага юзайте пока бан не получите если ещё не получили есть другой вариант подстановки без inurl и allinurl
"bla-bla-bla" -"bla-bla-bla" и никакого бана :-] подробней можно поискать на какомто блоге (на каком реал не помню)
вот здесь смотрим подробности Для просмотра ссылки Войди или Зарегистрируйся
 
Изменил test.php->index.php
seconf.php->seconf.ini
*** скрытое содержание ***
Начал разбираться с твоим замешивателем запросов и понял его глубину... Написал своих макросов, добавил разных вариантов замешивания, но есть вопрос.
Не могу никак собрать запрос вида
inurl:xxxxx -intext:text1 -intext:text2 -intext:text
Мои варианты не проходят:
MACROS="MTLD,EXT,EXT2,TLD,NINT,WASTE";
WASTE="capcha,kod,login,password,404,otvet,kapcha,code,[url=";
NINT="[FIELD{-[SE{int}][FIELD{[WASTE]}]}]";
int="intext:";
[SE{iu}]"[FIELD{guest,g}]book.[FIELD{[EXT]}]" [MTLD] [NINT]
да и другие варианты перебирал - не выходит размножить один и тот же оператор с разными параметрами в одном запросе, а было бы ОЧЕНЬ удобно....
Поможеш?
 
Вот с этого запроса получаю файл размером 219 394
[SE{iu}]"[FIELD{guest,g}]book.[FIELD{[EXT]}]" [MTLD] [NINT] [NINT1]

COMMAND="iu,site,lnk,int";
MACROS="MTLD,EXT,EXT2,TLD,NINT,NINT1,WASTE,WASTE1";
TLD="com,net,org,info,us,uk,de,ru,nl";
EXT="php,asp,html,htm,cgi,pl";
EXT2="exe,com";
WASTE="capcha,kod,login,password,404,otvet,kapcha, code,[url=";
WASTE1="good,ok,super,send";
NINT_old="[FIELD{-[SE{int}][FIELD{[WASTE]}]}]";
NINT="-[SE{int}][FIELD{[WASTE]}]";
NINT1="+[SE{int}][FIELD{[WASTE1]}]";
MTLD="[SE{site}].[FIELD{[TLD]}]";
[ALL_ENGINES]
iu="inurl:";
site="site:";
lnk="link:";
int="intext:";
[GOOGLE]
[MSN]
[YAHOO]
lnk="linkdomain:";
 
Да но ты получаеш вариант:
inurl:xxxxx -intext:text1 +intext:text2
а мне нужно несколько операторов отрицания в одном запросе:
inurl:xxxxx -intext:text1 -intext:text2 -intext:text
 
Не понял. Кто мешает :
NINT1="-[SE{int}][FIELD{[WASTE1]}]";
 
Да, а если значений неизвестно заранее сколько? Или я тебя не понимаю или ты меня :)
 
Все понял. Постараюсь что-нибудь придумать
 
Вот теперь все красиво!
Я тут чуть поправил твою ф-цию что бы она не выдавала нотисы о Undefine offset. Посмотри верно ли я понял твою логику, но по крайней мере работает :)
PHP:
        function repl_fields($str)
        {
            $sf="";
            $pattern="/\[FIELDR\{(.*)\}\]/isU";
            if (preg_match_all($pattern,$str,$res))
            {
                for ($i=0;$i<=count($res[0]);$i++)
                {
                  if(isset($res[1][$i])) {
                    $ts=explode("||",$res[1][$i]);
                   }
                  if(isset($ts[1]) && isset($ts[0]) && isset($res[0][$i])) {
                    $ts1=explode(",",$ts[1]);
                    foreach ($ts1 as $ln) $sf.=$ts[0].$ln." ";
                    $str=str_replace($res[0][$i],$sf,$str);
                    }

                }
            }
            
            $astr=array($str);
            $_ext="[FIELD";
            $pattern="/\[FIELD\{(.*)\}\]/isU";
            $ret=array();
            if (preg_match_all($pattern,$str,$res))
            {
                for($i=0;$i<=count($res[0])-1;$i++)
                {
                    $tld=$res[0][$i];
                    $val=explode(",",$res[1][$i]);
                    $ret=array();
                    foreach($astr as $aln)
                    {
                        foreach($val as $ln) $ret[]=str_replace($tld,$ln,$aln);
                        $astr=$ret;
                    }
                    $ret=$astr;
                }
            }
            else $ret[]=$str;
            return $ret;
        }
 
Посмотри верно ли я понял твою логику...
В принципе да. ошибка была сдесь
PHP:
for ($i=0;$i<=count($res[0]);$i++)
а надо
for ($i=0;$i<count($res[0]);$i++)

кое-что поправил (обработка отсутствия параметра)


Если интересно, могу позже выложить парсер(в основе та же идея, правда он очень сырой)
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху