Avatar billede t3ch Nybegynder
02. april 2009 - 21:16 Der er 5 kommentarer og
1 løsning

Læse search results fra Google

Vil lave et lille tool, hvor det skal være muligt at taste sit website samt søgeord ind, hvorefter det finder ud af hvilken side i Google man ligger på, på de indtastede søgeord.

Er dog løbet ind i problemer med Google, som smider en 403 tilbage. Har læst det er en sikkerhed, men handler nok bare om de ikke tillader bots af den art. Hvad blev der af "Do no evil"? ;)

I første omgang vil jeg bare læse en HTTP-side i Java. Kan sagtens læse google.com, men ikke eks. http://www.google.dk/search?hl=da&q=eksperten&btnG=Google-s%C3%B8gning&meta=&aq=f&oq=

Har testet det på Live, Yahoo, Altavista og Jubii, hvor det virker fint med search strings.


Source
----------------------------------
import java.net.*;
import java.io.*;

public class URLConnectionReader {
    public static void main(String[] args) throws Exception {
        URL google = new URL("http://google.com/");
        URL google2 = new URL("http://google.com/search?q=Eksperten&hl=da&start=0&sa=N");

        URLConnection uc = google2.openConnection();
        BufferedReader in = new BufferedReader(
                                new InputStreamReader(
                                uc.getInputStream()));
        String inputLine;

        while ((inputLine = in.readLine()) != null)
            System.out.println(inputLine);
        in.close();
    }
}
----------------------------------


Output
----------------------------------
Exception in thread "main" java.io.IOException: Server returned HTTP response code: 403 for URL: http://www.google.com/search?q=Eksperten&hl=da&start=0&sa=N
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1305)
        at URLConnectionReader.main(URLConnectionReader.java:10)
Java Result: 1
----------------------------------



Nogen idé til hvordan dette omgås? Har før set et lignende tool, men kan ikke finde det, og vil egentlig gerne lave mit eget.
Avatar billede arne_v Ekspert
02. april 2009 - 21:32 #1
Engang kunne man:

        URL url = new URL("http://www.google.dk/search?q=hej");
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
        con.setRequestProperty("Referrer", "http://www.google.dk/");
        con.connect();
        if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {

D.v.s. bare fortaelle at man er en browser.

Men proev ogsaa og studer Googles "Terms of Service" og vurder om brugen falder ind under det tilladte !
Avatar billede t3ch Nybegynder
02. april 2009 - 21:53 #2
Yes, det virker! Perfekt Arna - smid et svar. :)

Men ja, må lige læse TOS, så jeg undgår ban.
Avatar billede t3ch Nybegynder
02. april 2009 - 21:57 #3
Arne*

Hvorfor er det lige der ikke findes en rediger-funktion herinde?
Avatar billede arne_v Ekspert
02. april 2009 - 21:59 #4
svar
Avatar billede arne_v Ekspert
02. april 2009 - 22:04 #5
http://www.google.com/accounts/TOS

den kritiske er:

5.3 You agree not to access (or attempt to access) any of the Services by any means other than through the interface that is provided by Google, unless you have been specifically allowed to do so in a separate agreement with Google. You specifically agree not to access (or attempt to access) any of the Services through any automated means (including use of scripts or web crawlers) and shall ensure that you comply with the instructions set out in any robots.txt file present on the Services.

Og spoergsmaalet er om dit program er en browser (hvilket er tilladt) eller en automated/script/webcrawler (hvilket ikke er tilladt).
Avatar billede t3ch Nybegynder
02. april 2009 - 22:44 #6
Hm ja... Jeg ville nok se det som et script fremfor en browser. Either way - kan altid lave det og lade være med at videredistribuere det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester