PDA

Просмотр полной версии : Посоветуйте парсер гугла


diznt
20.05.2009, 01:40
Собственно сабж
В гугл шел
Но там некоторые оказались не рабочими, либо вообще ниче не поймешь (как парсить)
Вообщем какой парсер посоветуете? (на перл не предлогать!)

mss-s
20.05.2009, 02:16
попробуй лучше так
а дальше думаю разберешься

http://www.google.com/ie?q=&num=100&hl=ru&start=0&sa=N&filter=0

diznt
20.05.2009, 02:29
mss-s конечно + за линк, но мне парсер нужен (а твой линк просто выдает грубо говоря титлы с ссылкой на то что он нашол)

diehard
20.05.2009, 03:24
hrefer

diznt
20.05.2009, 15:10
diehard не то, нужна без проксевая (я знаю что так долго будет без прокси собирать)

devton
20.05.2009, 15:27
ниипаняятно ты сформулировал, афтор
вот например неплохая связка:
http://www.google.com/ie?q=&num=100&hl=ru&start=0&sa=N&filter=0
+
http://webdos.freezoka.com/files/htmllerz.zip (прога из архива может вырезать "от сих до сих")

diznt
20.05.2009, 15:33
devton тоже не то, вообще бред какой то, если я прально понял то нужно для этой проги самому собирать определенные куски страницы и туда пихать

ph1l1ster
20.05.2009, 15:40
URL dumper

а так?

<form method=GET>
<input type=text name=q value="">
<input type=submit name=submit value="Поиск">
</form>
<?php
If(isset($_GET['q']))
{
$s=file_get_contents("http://www.google.com/search?q=".$_GET['q']."&num=100");
$preg='#\"(http://)[a-z\.]+\/*[\S]+\"#';
$p=preg_match_all($preg,$s,$ar,PREG_SET_ORDER); ;
for($i=0;$i<$p-1;$i++)
{
If(!strchr($ar[$i][0],"google"))
{
$ar[$i][0]=str_replace('"',"",$ar[$i][0]);
echo $ar[$i][0]."<br>";
}
}
}
?>

или перловый. только на сокетах

#! /usr/bin/perl

# ===::: google parser v0.8 :::===
# (c)oded by drmist\STNC
# www.security-teams.net

use IO::Socket::INET;

$server = "google.com";
$port = 80;
$count = 0;
$search = "";
@found = ();
@dn = ();

if((@ARGV < 2)||(@ARGV > 8)||(@ARGV % 2 > 0)) { usage(); exit; }

$i = 0;
while($i < @ARGV)
{
if($ARGV[$i] eq "-s"){ $server = $ARGV[$i+1]; }
elsif($ARGV[$i] eq "-p"){ $port = $ARGV[$i+1]; }
elsif($ARGV[$i] eq "-r"){ $search = $ARGV[$i+1]; }
elsif($ARGV[$i] eq "-n"){ $count = $ARGV[$i+1]; }
else { print "Invalid key: ".$ARGV[$i]."\n"; exit; }
$i += 2;
}

if($search eq ""){ usage(); exit; }
$search =~ s/(.)/sprintf("%%%02x",ord($1))/eg;
if($server !~ /:[0-9]{2,5}$/){$server.=":$port";}

for($i = 0; $i < 10; $i++)
{
@temp = get_request($server,"search?filter=0&num=100&start=".$i.
"00&q=$search") =~ /(https?\:\/\/[a-z0-9\.\-\/\?\:\&\%\=\_]{5,})/gi;

$a = 0;
foreach $url (@temp)
{
if($url =~ /https?\:\/\/[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\/search\?q=cache:/i){ next; }
($domain) = $url =~ /^https?\:\/\/([a-z0-9\.\-]{5,})/i;
$f=0;foreach(@dn){if($_ eq $domain){$f++;last;}}if($f){next;}
push(@found, $url);
if($count){if(!--$count){$a++;last;}}
push(@dn,$domain);
}
if($a){last;}
}

foreach(@found){print "$_\n";}

sub get_request()
{
local $sock;
local $data = "";
local($server, $url) = ($_[0], $_[1]);
$sock = IO::Socket::INET->new($server) or return -2; # connection failed
print $sock "GET /$url HTTP/1.0\r\n\r\n";
while(<$sock>){$data .= $_;}
close $sock;
return $data;
}

sub usage()
{

print qq(
drmist's google parser v 0.8

usage: gparse.pl [-s <server>] [-p <port>] -r <request> [-n <number>]
<server> google server, default: google.com
<port> http-server port, default: 80
<requets> search request
<number> number of links, that will be shown, default: all
examples:
perl gparse.pl -r 'filetype:php inurl:page=' | grep page=
perl gparse.pl -s google.ru:80 -r 'Powered by phpbb' -n 10
perl gparse.pl -s google.ru -p 80 -r 'site:com inurl:backup.sql'
perl gparse.pl -s google.de -r 'inurl:seite=' -n 400

for more information visit www.security-teams.net

);

}

diznt
20.05.2009, 15:57
ВОт что пишет Parse error: syntax error, unexpected '<' in /home/freehost/t35.com/s/e/sex-for-you/2.php on line 2

И во вторых я же говорил что НЕ НУЖНЫ ПЕРЛ СКРИПТЫ!

diehard
20.05.2009, 20:36
diehard не то, нужна без проксевая (я знаю что так долго будет без прокси собирать)

можешь отрубить прокси, если нужно без проксей.

попугай
20.05.2009, 22:57
а что ты именно парсить хочешь то?

faza02
21.05.2009, 08:50
#!/usr/bin/python
#coded by faza02

import urllib
import re
link=raw_input(u'link: ')
for b in range(0, 51, 10):
google=str(urllib.urlopen('http://www.google.ru/m?site=search&eosr=on&q=' + link + '&start=' + str(b)+ '&sa=N&mrestrict=xhtmlonly').read())
link=re.findall(r';u=http%3A%2F%2F.*?\"\>',google)
link=str(link)[2:-2]
link=urllib.unquote(link)
link=link.replace(';u=','')
link=link.replace('\">','')
link=link.replace(', ','\n')
link=link.replace('\'','')
f=open(u'c:/2.txt','a+')
f.write(link+"\n")
f.close()
print 'ok!1'

SanyaX
21.05.2009, 10:08
GlobalSquid SE Parser v1.8
Вроде нормальный, ставишь таймаут 5 сек, и без прокси по тихой собирает.

banana
22.05.2009, 22:16
На питоне даже в Хакере 05 есть