URL - 403 ERROR - Google News - PHP geht

Status
Nicht offen für weitere Antworten.

Partheeus

Aktives Mitglied
Moin...

ich hab mal wieder ne Frage und zwar versuche ich per URL auf die http://news.google.de Seite zugelangen,
ständig kommt es aber zu dem Fehler:
Code:
Server returned HTTP response code: 403 for URL: [url]http://news.google.de//news?hl=de&ned=de&ie=UTF-8&q=arbeit[/url]

Habe hier auch schon gelesen das es nicht möglich ist, auf solchen Dienst per URL zugreifen zu können (siehe hier ).

Was mich verwundert, das ich z.B. mit meinem PHPScript, sehr wohl so eine Abfrage machen kann.
Hat jemand eine Idee, woran das liegen kann???

Hier mein JAVA Code:

Code:
	URL url = null;
        InputStream input = null;
        try{
            url = new URL( "http://news.google.de//news?hl=de&ned=de&ie=UTF-8&q="+name );
            URLConnection conn = url.openConnection();
            conn.setUseCaches(false);
		    conn.setDoOutput(true);
		    conn.setDoInput(true);
            conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
        }catch(MalformedURLException ex){
            ex.printStackTrace();
        } catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
        StringBuffer strb = null;
        try{
            try{
                input = url.openStream();
            }catch(UnknownHostException ex){
            }
            if( input != null ){
                int c = input.read();
                strb = new StringBuffer();
                while( c != -1 ){
                    char cc = (char)c;
                    strb.append(cc);
                    c = input.read();
                }
            }
        }catch(IOException ex){
            ex.printStackTrace();
        }
        System.out.println(strb.toString());

und mein funktionierender!!! PHP Code:

Code:
        $host = "news.google.de";
	$path = "/news?hl=de&ned=de&ie=UTF-8&q=arbeit";
	$query = "";
	$post="POST $path HTTP/1.1\r\nHost: $host\r\nContent-type: application/x-www-form-urlencoded\r\n".
                  "${others}Content-length: ".strlen($query)."\r\nConnection: close\r\n\r\n$query";
	$h=fsockopen($host,80, $errno, $errstr, 90);
	fwrite($h,$post);
	for($a=0,$r='';!$a;){
		$b=fread($h,8192);
		$r.=$b;
		$a=(($b=='')?1:0);
	}
	fclose($h);

Ich finde einfach keine Lösung für dieses Problem. :-( Bitte helft mir.....
 

AlArenal

Top Contributor
Das Problem hatten wir schonmal vor einigen Wochen. Es hat den Anschein, als werte Google die beim Request mitgelieferten Header (z.B. User-Agent) aus um sicherzustellen, dass nicht jemand über Umwege eine Google-Suche in seine Programme einbaut, denn dafür hat Google ja eigens Webservices im Angebot, mit denen sie wohl nach Beendigung der Betaphase Geld machen werden wollen.
 

Partheeus

Aktives Mitglied
Hmm....also gibts da erstmal keine vernüftige Möglichkeit, oder?!

Ich mein, ich könnte immernoch mein PHPScript aufrufen und mir die Ergebnisse darüber holen,
aber das ist schon wieder so :oops: .
 

AlArenal

Top Contributor
Du könntest natürlich den User-Agent Header einfach auf den Wert irgendeiner gängigen Browserversion setzen und Googel damit austricksen - so meine Vermutung mit dem Agent richtig ist, wovon ich aber ausgehe ;)
 
R

Roar

Gast
Hmm....also gibts da erstmal vernüftige keine Möglichkeit, oder?!
die lösung steht doch in dem post über deinem, und in dem verlinken thread...

es gibt übrigens auch rss feeds bei google für diesen zweck...
 

Partheeus

Aktives Mitglied
Habs erkannt und Fehler gefunden!!!! Jetzt gehts!!! :)

hier:

Code:
		URL url = null;
        InputStream input = null;
        HttpURLConnection conn = null;
        try {
			url = new URL("http://news.google.de/news?hl=de&ned=de&ie=UTF-8&q=arbeit");
			conn = (HttpURLConnection) url.openConnection();
			conn.setDoOutput(true);
			conn.setDoInput(true);
			conn.setRequestProperty(
				"user-agent",
				"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)");
			conn.setRequestProperty("Referer", "http://www.google.de/");
			conn.connect();
		} 
        catch (MalformedURLException e) { e.printStackTrace(); }
		catch (IOException e) { e.printStackTrace(); }
        StringBuffer strb = null;
        try {
            try {
                input = conn.getInputStream();
            } catch(UnknownHostException ex) { }
            if( input != null ) {
                int c = input.read();
                strb = new StringBuffer();
                while( c != -1 ){
                    char cc = (char)c;
                    strb.append(cc);
                    c = input.read();
                }
            }
        }catch(IOException ex){
            ex.printStackTrace();
        }
        System.out.println(strb.toString());
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
x46 Connection reset by peer: socket write error Netzwerkprogrammierung 6
D Socket Error: java.lang.NullPointerException Netzwerkprogrammierung 1
D Apache Mina Serial: Error Netzwerkprogrammierung 2
T HTTP HtmlUnit - Javascript Error Netzwerkprogrammierung 2
B FTP FTTPSClient.retrieveFileStream: error 500 Netzwerkprogrammierung 7
A HTTP Zugriff auf http-Server - Error 400 Netzwerkprogrammierung 11
G Exception: Connection reset by peer: socket write error Netzwerkprogrammierung 2
O Error in generating WSDL from Java: java.lang.ClassNotFoundException: WS Netzwerkprogrammierung 2
S Error 404 obwohl die Datei existiert Netzwerkprogrammierung 9
J 403 error bei POST request Netzwerkprogrammierung 3
IT-MaD Connection reset by peer: socket write error Netzwerkprogrammierung 2
I socket write error bei 2. Sendeversuch Netzwerkprogrammierung 5
N Error 400 Netzwerkprogrammierung 8
J socket write error Netzwerkprogrammierung 3
M com.google.gson wird nicht erkannt Netzwerkprogrammierung 2
J Google Drive Netzwerkprogrammierung 2
S HTTP Download von Google-URL mit Parametern Netzwerkprogrammierung 1
T GWT mit Google App Engine Netzwerkprogrammierung 0
Y HTTP Google Reader API Kommunikation Netzwerkprogrammierung 3
M Google Image Upload Netzwerkprogrammierung 12
Dit_ UDP Port testen | Ping Google? Netzwerkprogrammierung 7
M Google Translate über Java ansprechen? Netzwerkprogrammierung 13
L Google Suchergebnisse in Java Applikation Netzwerkprogrammierung 4
S Google Search Webservice mit Apache Axis realisieren? Netzwerkprogrammierung 2
G Google-Suche funktioniert nicht Netzwerkprogrammierung 6
B google durchsuchen mit URL.openStream() Netzwerkprogrammierung 5
bummerland Google liefert HTTP response code 403 Netzwerkprogrammierung 2
M Welches Speicherformat für News-Database?? Netzwerkprogrammierung 2

Ähnliche Java Themen


Oben