Просмотр полной версии : Парсер выдачи гугла по доркам
Подскажите по сабжу, что не пробовал рано или поздно вылетает капча. Может с антикапчей есть софт, может софт обходит капчу. Поделитесь кто чем пользуется
winstrool
07.09.2011, 02:14
используй прокси
winstrool said:
используй прокси
спасибо, но я ищу именно софт, прокси и так использую
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, прикрутить его к грабберу будет просто.
Code:
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
токо прокси!
Парсер гугла. Переделывал когда-то для себя чей-то пример. Для чего-то простого думаю сойдет.
PHP:
#',$google,$links);
foreach($links[1] as$link)
{
$currentPage[] =$link;
}
$links=implode("\n",$currentPage);
$fp=fopen('links.txt','ab');//links.txt файл со сылками
fwrite($fp,$links);
fclose($fp);
unset($links);
unset($currentPage);
printf("Total links: %d
",$i+10);
$rnd=rand(7,13);// Задержка 7-13 секунд
printf("Waiting for %d seconds...\n",$rnd);
flush();
ob_flush();
sleep($rnd);
}
?>
есть рабочий jQuery парсер гугла, у меня был заточен под парсинг всех доменов в зоне DK если интересно дам, в бан не уходит! правдо 1 поток (php)
maxim2142
25.10.2011, 14:49
Давай)Как раз поковыряюся в коде)
MaxCheet
12.11.2011, 02:49
мне тоже скиньте плиз
Breetonia
22.12.2011, 23:09
Был бы парсер,парсящий бесконечнои выдавал бы окно каптчи,останавливая парсинг,а то лажня какая-то - или вообще не работает,или работает,но жутко криво.
Ап ! Есть сейчас какие нибудь готовые решения парсера по доркам ?
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot