Adm123

Рейтинг
50
Регистрация
26.07.2007
Unlock:
Adm123, я балдею с Вас... Религиия не позволяет?

Ага, я как те гугеноты, которых Портос убивал только за то, что они поют псалмы по-французски...

Короче - туго у меня с английским. А в русском сегменте я не нашел... Только на php, но о нем я уже говорил...

TIuBo:
Честно говоря не очень в курсе, но код бы посмотрел, может что и подскажу...
скинь код в личку, поразбираюсь

Не хочет оно тебе в личку идти! Напишу тут.

Вот 2 функции:


// Функция используется при вычислении Google Checksum (см. ниже)
function mix($a, $b, $c)
{
$a -= $b;
$a -= $c;
$a ^= (zeroFill($c, 13));

$b -= $c;
$b -= $a;
$b ^= ($a << 8);

$c -= $a;
$c -= $b;
$c ^= (zeroFill($b, 13));

$a -= $b;
$a -= $c;
$a ^= (zeroFill($c, 12));

$b -= $c;
$b -= $a;
$b ^= ($a << 16);

$c -= $a;
$c -= $b;
$c ^= (zeroFill($b, 5));

$a -= $b;
$a -= $c;
$a ^= (zeroFill($c, 3));

$b -= $c;
$b -= $a;
$b ^= ($a << 10);

$c -= $a;
$c -= $b;
$c ^= (zeroFill($b, 15));

return array($a, $b, $c);
}


// Функция, вычисляющая Google Checksum (контрольную сумму Google)
//
// Входные данные:
// $url - URL, для которого требуется определить Google Checksum
// $length - длина строки $url (по умолчанию - null, вычисляется в функции)
// $init - "волшебное" число
//
// Выходные данные:
// $mix[2] - значение Google Checksum для заданного адреса $url
//
function GoogleCH($url, $length = null, $init = GOOGLE_MAGIC)
{
if (is_null($length))
{
$length = sizeof($url);
}

$a = $b = 0x9E3779B9;
$c = $init;
$k = 0;
$len = $length;

while($len >= 12)
{
$a += ($url[$k + 0] + ($url[$k + 1] << 8) + ($url[$k + 2] << 16) + ($url[$k + 3] << 24));
$b += ($url[$k + 4] + ($url[$k + 5] << 8) + ($url[$k + 6] << 16) + ($url[$k + 7] << 24));
$c += ($url[$k + 8] + ($url[$k + 9] << 8) + ($url[$k + 10] << 16) + ($url[$k + 11] << 24));
$mix = mix($a, $b, $c);
$a = $mix[0];
$b = $mix[1];
$c = $mix[2];
$k += 12;
$len -= 12;
}

$c += $length;

switch ($len)
{
case 11: $c += ($url[$k + 10] << 24);
case 10: $c += ($url[$k + 9] << 16);
case 9 : $c += ($url[$k + 8] << 8);
// Первый байт $c зарезервирован для значения $length
case 8 : $b += ($url[$k + 7] << 24);
case 7 : $b += ($url[$k + 6] << 16);
case 6 : $b += ($url[$k + 5] << 8);
case 5 : $b += ($url[$k + 4]);
case 4 : $a += ($url[$k + 3] << 24);
case 3 : $a += ($url[$k + 2] << 16);
case 2 : $a += ($url[$k + 1] << 8);
case 1 : $a += ($url[$k + 0]);
}

$mix = mix($a, $b, $c);

return $mix[2];
}

Кто б мне объяснил, что в них происходит...

А еще лучше - перевел бы на Delphi, тады я и сам пойму...

mih4:
меняете запрос в парсере inurl:guestbook.php?act=new
на
"guestbook.php?act=new" -intext:"guestbook.php?act=new"
обходим ограничения на 1000 и нет бана от гугли за inurl:

Т.е. нужно всего лишь добавить кавычки?! Не проблема. Спасибо за совет! Будет реализовано после праздников!

happymax:

На сколько мне известно с запроса без прокси можно парсить от силы пару сотен, через прокси до 1000.

Парсить можно до 1000 и без проксей. Именно поэтому ограничено количество результатов выдачи (max 999)

happymax:
PS:но все равно, как по мне, парсер хорош.

Спасибо! Общение на этом и других форумах выявило возможные улучшения. После праздников реализую.

serg-e:
Нормуль! продолжай. еще бы для яндекса.
(рекламку показывай не с сайта народа, не онравишся админу за чтони-будь уберут ак. и реклама пропадет. зарег свой домен!)

Яндекс, ИМХО, не так интересен, потому что в его языке запросов нет такой классной штуки как inurl. Но, возможно... Если практика покажет, что прога народу интересна - сделаю.

А рекламку показываю с народа через редирект - как раз на случай бана и с тем расчетом, чтоб можно было потом на серьезный сайт юзера отправить. Свой домен, конечно, надежнее, но пока я не пришел к выводу - окупится ли он...

happymax:
А что именно в проге будет? Будет платная или фри? Когда приблизительно будет?

Будет фри. С такой же рекламкой внизу. Доделаю, наверно, после праздников, а то я ща бухаю... :)

Можно будет чистить базу от дублей и сравнивать 2 базы по принципу "грохнуть дубли из 1ой/2ой или вынести дубли в новую". Возможно, допишу сортировку по PR и/или ТИЦ. Ссылку для скачки размещу на том же http://tospam2008.narod.ru

Или редирект сделаю...

voky:
До 1000 можно напарсить и без проксей:), а вот с inurl надо осторожнее, часто банит за этот оператор.

Повторяюсь: это первый опыт и в "тонких материях" типа прокси я пока не шарю. Но, насколько я понимаю, использование прокси важно для спамилки, а для парсера это не очень принципиально...

Я не прав?

Приму с благодарностью любые советы и помощь (начиная с теории) в написании десктоптной спамилки!

А по поводу "до 1000" - так вручную это делать долго... Хотя, каждому - свое...

happymax:
inurl:guestbook.php?act=new

Попробуйте ввести ИМЕННО ЭТОТ запрос. На третьей сотне в браузере - ошибка. Прога работает корректно.

Я не претендую на звание специалиста, делаю проги для облегчения собственного труда и буду рад, если они помогут еще кому...

В качестве совета - попробуйте переформулировать запрос.

В качестве ответа - возможно, введу в программу help по языку запросов или сделаю "запросную" менюшку - в зависимости от отзывов.

В качестве общения - спасибо за критику!

happymax:
Мне понравился, что быстро работает и есть встроенный браузер. Как сделать, чтобы парсил до конца выдачи? К примеру один запрос в гугле выдает 700 с хвостом ресов, а парсятся только 200 с мелочью. Добавить: PR чекер, чтобы можно было удалять дубли и мертвые ссылки.

Парсит до конца, разве нет?! Приведите пример запроса, плз! А для обработки баз прогу пишу - это будет отдельная утилита.

Да, деятели есть разные...

А про выхлоп не знаю - первый опыт ))

Самому любопытно - чего получится...

Всего: 78