ACHTUNG. Das ist ein Archiv des alten forum.ruby-portal.de. Die aktuelle Mailingliste gibt es auf lists.ruby-lang.org/pipermail/ruby-de.

NOTICE. This is a ready-only copy of the old forum.ruby-portal.de. You can find the current mailing list at lists.ruby-lang.org/pipermail/ruby-de.

Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 27 Jan 2004, 14:00 
Offline
Ex-Admin
Benutzeravatar

Registriert: 12 Mai 2003, 18:49
Beiträge: 890
Wohnort: Kiel
Moin!

Ich habe mal ein kleines Script geschrieben, welches die Positionen von einer oder mehr URLs bei Google zu einem bestimmten Schlagwort herausfindet. Gibt's zwar schon öfter im Netz, aber meist lassen sich nur eine URL zur Zeit überprüfen. Auch die Benutzung des net/http-Moduls kann hier einfach abgeschaut werden. cgi brauche ich nur, um den Suchbegriff zu URL-encoden.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/ruby

require 'net/http'
require 'cgi'

# Findet die Position in der Antwort von Google heraus
def finde(data, urls)
data = data.split(/<p class=g>/)
data.delete_at(0)

pattern = /^<a href=http:\/\/([^>]*)>/

gefunden = false
pos = 1
for subpos in 1...data.size
unless (pattern =~ data[subpos - 1]) == nil
foundUrl = pattern.match(data[subpos - 1])[1]
end
urls.each do |url|
if foundUrl.include?(url)
puts "#{foundUrl} an Position #{subpos} gefunden"
gefunden = true
end
end
end
unless gefunden
puts "Die URL(s) wurde nicht innerhalb der ersten 100 Ergebnissen gefunden. :("
end
end

urls = []
puts "Du kannst mehrere, durch Leerzeichen getrennte URLs angeben."
print "Zu suchende URL(s): "
urls = gets.chomp.split(/ /)

begin
print "Keywords: "

keywords = gets.chomp

puts "F��hre Googlesuche nach \"#{keywords}\" ohne Sprachbegrenzung aus..."
con = Net::HTTP.new('www.google.com', 80)
resp, data = con.get("/search?num=100&q=#{CGI::escape(keywords)}")
if resp.code != "200"
puts "Da ist was schiefgelaufen :("
puts "Antwort war: #{resp.code} #{resp.message}"
else
finde(data, urls)
end

puts "F��hre Googlesuche nach \"#{keywords}\" mit \"Seiten auf Deutsch\" aus..."
resp, data = con.get("/search?num=100&hl=de&lr=lang_de&q=#{CGI::escape(keywords)}")
if resp.code != "200"
puts "Da ist was schiefgelaufen :("
puts "Antwort war: #{resp.code} #{resp.message}"
else
finde(data, urls)
end

puts "F��hre Googlesuche nach \"#{keywords}\" mit \"Seiten aus Deutschland\" aus..."
resp, data = con.get("/search?num=100&hl=de&cr%3DcountryDE&q=#{CGI::escape(keywords)}")
if resp.code != "200"
puts "Da ist was schiefgelaufen :("
puts "Antwort war: #{resp.code} #{resp.message}"
else
finde(data, urls)
end

print "Weitere Suche f��r diese URL(s) durchf��hren (j/n)? "
end while gets[0].chr.downcase == "j"


Kommentare willkommen ;)

iGEL


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 27 Jan 2004, 19:52 
Offline
Lehrling

Registriert: 24 Jun 2002, 13:32
Beiträge: 95
Wohnort: Berlin
hey,

habs grad mal getestet ruby 1.8.0 build, win nt
fehlermeldung: zeile 8, split hat keinen wert uebermittelt bekommen

gruss
nils

_________________
...mind your brain
SelfRuby
JBB


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 28 Jan 2004, 00:04 
Offline
Ex-Admin
Benutzeravatar

Registriert: 12 Mai 2003, 18:49
Beiträge: 890
Wohnort: Kiel
Moin!

Hmm, interessant. Unter Linux läufts. Ich boote nachher mal Windows. :) Aber danke für die Meldung!

iGEL


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 02 Feb 2004, 14:02 
Offline
Ex-Admin
Benutzeravatar

Registriert: 12 Mai 2003, 18:49
Beiträge: 890
Wohnort: Kiel
Moin!

So, jetzt hab ich's mal getestet, und es läuft. Welche Version verwendest du? Ich hab hier 1.8.1 (Linux) und den 1.8.0-Installer (Windows).

iGEL


Nach oben
 Profil  
 
 Betreff des Beitrags:
BeitragVerfasst: 04 Feb 2004, 15:22 
Offline
Lehrling

Registriert: 24 Jun 2002, 13:32
Beiträge: 95
Wohnort: Berlin
hi,

hab jetzt ein upadte zu 1.8 version 10 gemacht, damit funktioniert es

_________________
...mind your brain
SelfRuby
JBB


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron