ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   Песочница (https://forum.antichat.io/forumdisplay.php?f=189)
-   -   Парсер выдачи гугла по доркам (https://forum.antichat.io/showthread.php?t=292598)

MikaS90 07.09.2011 02:12

Подскажите по сабжу, что не пробовал рано или поздно вылетает капча. Может с антикапчей есть софт, может софт обходит капчу. Поделитесь кто чем пользуется

winstrool 07.09.2011 02:14

используй прокси

MikaS90 07.09.2011 02:17

Цитата:

Сообщение от winstrool
используй прокси

спасибо, но я ищу именно софт, прокси и так использую

xek 08.09.2011 00:18

Google URL Grabber

Граббинг по дорку:

php grabber.php index.php?id=

Продолжить граббинг со страницы 5:

php grabber.php index.php?id= 5

Граббинг по стране US со страницы 10:

php grabber.php index.php?id= .uk 10

Собранные ссылки будут в links.txt

Если надо могу выложить класс по работе с socks, прикрутить его к грабберу будет просто.

Код:

showInfo();
                if (count($this->argv) argv[0] . ' ?id=' . " .com 15\r\n";
                        die;
                }
               
                $site = '';
                if (count($this->argv) == 3) {
                        if (is_numeric($this->argv[2])) {
                                $this->page = $this->argv[2];
                        } else {
                                $site = 'site:' . $this->argv[2];
                        }
                } elseif (count($this->argv) == 4) {
                        $site = 'site:' . $this->argv[2];
                        $this->page = $this->argv[3];
                }
                $this->google_dork = 'allinurl:' . $this->argv[1] . ' filetype:php ' . $site;
        }
       
        public function getLinks()
        {
                if (file_exists($this->links_filename)) {
                        $handle = fopen($this->links_filename, 'r');
                        $content = fread($handle, filesize($this->links_filename));
                        fclose($handle);
                       
                        if (preg_match_all('/(.*?)\r\n/s', $content, $match)) {
                                foreach ($match[1] as $link) {
                                        $this->grabbed_links[] = $link;
                                }
                        }
                        echo 'Grabbed links: ' . count($this->grabbed_links) . "\r\n\r\n";
                }
        }

        public function writeToFile($str = '', $option)
        {
                $handle = fopen($this->links_filename, $option);
                fwrite($handle, $str);
                fclose($handle);
        }
       
        public function getContent($query)
        {
                $content = '';
               
                $fp = fsockopen($this->google, 80, $errno, $errstr, 30);
                       
                if ($fp != false) {
                        $header  = "GET " . $query . " HTTP/1.0\r\n";
                        $header .= "User-Agent: Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.50\r\n";
                        $header .= "Host: " . $this->google . "\r\n";
                        $header .= "Connection: Close\r\n\r\n";
       
                        fwrite($fp, $header);
                        $start = microtime(true);
                       
                        while (!feof($fp) && (microtime(true) - $start) timeout) {
                                $content .= fgets($fp);
                        }
                        fclose($fp);
                       
                        return $content;
                }
                return false;
        }
       
        public function grabbing()
        {
                $nextPageExist = true;
                $next_page_regexp = '//s';
                $url_regexp = '/google_dork) . '&btnG=Search&num=100&start=';
                $query = '/search?hl=en&as_q=' . urlencode($this->google_dork) . '&as_qdr=all&num=100&start=';
                $page = $this->page;
                $grabbed_links = $this->grabbed_links;
               
                while ($nextPageExist) {
                        $_query = $query . $page . '00';
                        $content = $this->getContent($_query);
                        $page++;
                       
                        if (empty($content)) {
                                echo "\r\n" . 'Stopped by socket error!' . "\r\n";
                                echo 'On page: ' . --$page . "\r\n";
                        }
                       
                        if (preg_match_all($url_regexp, $content, $match)) {
                                foreach ($match[1] as $_url) {
                                        $linkExist = false;
                                        $url = html_entity_decode(urldecode($_url)) . "\r\n";
                                        if (!strstr($url, '=')) continue;

                                        preg_match('/(?P.*?\..*?)\//s', $url, $match);
                                        foreach ($grabbed_links as $links) {
                                                if (strstr($links, $match['domain']) !== false) {
                                                        $linkExist = true;
                                                        break;
                                                }
                                        }
                                        if (!$linkExist) {
                                                $grabbed_links[] = $url;
                                        } else { continue; }
                                       
                                        echo $url;
                                        $this->writeTofile($url, 'a');
                                }
                        }

                        if (preg_match('/' . $this->google . '\/sorry\//s', $content)) {
                                echo "\r\n" . 'Stopped by AntiBot System!' . "\r\n";
                                echo 'On page: ' . --$page . "\r\n";
                                break;
                        }
                       

                        if (!preg_match($next_page_regexp, $content)) $nextPageExist = false;
                }
        }
       
        public function __construct($argv)
        {
                $this->argv = $argv;
               
                $this->getParameters();
                $this->getLinks();
                $this->grabbing();
        }
}

$googleURLGrabber = new googleURLGrabber($argv);


julpierto 10.09.2011 23:14

Stopped by AntiBot System!

Выкладывай sock - без него никак --'

kitman12 17.10.2011 17:25

не пашет

eclipse92 17.10.2011 18:54

токо прокси!

=Zeus= 18.10.2011 02:00

Парсер гугла. Переделывал когда-то для себя чей-то пример. Для чего-то простого думаю сойдет.

PHP код:

[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]#'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$google[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$links[/COLOR][COLOR="#007700"]);

foreach([/COLOR][COLOR="#0000BB"]$links[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#0000BB"]1[/COLOR][COLOR="#007700"]] as[/COLOR][COLOR="#0000BB"]$link[/COLOR][COLOR="#007700"])

{

[/
COLOR][COLOR="#0000BB"]$currentPage[/COLOR][COLOR="#007700"][] =[/COLOR][COLOR="#0000BB"]$link[/COLOR][COLOR="#007700"];

}

[/
COLOR][COLOR="#0000BB"]$links[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]implode[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"\n"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$currentPage[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]fopen[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]'links.txt'[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#DD0000"]'ab'[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]//links.txt файл со сылками

[/COLOR][COLOR="#0000BB"]fwrite[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$links[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]fclose[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$fp[/COLOR][COLOR="#007700"]);

unset([/COLOR][COLOR="#0000BB"]$links[/COLOR][COLOR="#007700"]);

unset
([/COLOR][COLOR="#0000BB"]$currentPage[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]printf[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"Total links: %d
"
[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$i[/COLOR][COLOR="#007700"]+[/COLOR][COLOR="#0000BB"]10[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]$rnd[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]rand[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]7[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]13[/COLOR][COLOR="#007700"]);[/COLOR][COLOR="#FF8000"]// Задержка 7-13 секунд

[/COLOR][COLOR="#0000BB"]printf[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#DD0000"]"Waiting for %d seconds...\n"[/COLOR][COLOR="#007700"],[/COLOR][COLOR="#0000BB"]$rnd[/COLOR][COLOR="#007700"]);

[/
COLOR][COLOR="#0000BB"]flush[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]ob_flush[/COLOR][COLOR="#007700"]();

[/
COLOR][COLOR="#0000BB"]sleep[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$rnd[/COLOR][COLOR="#007700"]);

}

[/
COLOR][COLOR="#0000BB"]?>

[/COLOR][/COLOR] 


Slaid 25.10.2011 14:21

есть рабочий jQuery парсер гугла, у меня был заточен под парсинг всех доменов в зоне DK если интересно дам, в бан не уходит! правдо 1 поток (php)

maxim2142 25.10.2011 14:49

Давай)Как раз поковыряюся в коде)


Время: 08:54