Stephan: Was zeigt Referer an?

Hallo,

ich habe mir jetzt gerade meinen Crawler fertig gestellt. Dieser soll meine nicht Datenbank basierte Seite in eine Datenbank übertragen, inklusive HTML.

Wenn ich ihn nun laufen lasse, was zeigt er mir dann als Referer an? es ist ein PHP Script. Kann ich auch irgendwie meinen eigenen Referer reinschreiben, also z.B. "Stephan´s Crawler - Version 1.0"?

Wäre cool, wenn das geht!

Danke schon mal

Stephan

  1. Hi,

    Wenn ich ihn nun laufen lasse, was zeigt er mir dann als Referer an? es ist ein PHP Script. Kann ich auch irgendwie meinen eigenen Referer reinschreiben, also z.B. "Stephan´s Crawler - Version 1.0"?

    Im Referrer steht eine URL/URI und keine Client-Angabe. Dazu gibt es den User-Agent.

    E7

    1. Hallo,

      Im Referrer steht eine URL/URI und keine Client-Angabe. Dazu gibt es den User-Agent.

      und wie kann ich die Client-Angabe änder?

      Danke schon mal

      Stephan

      1. Hi Stephan,

        Im Referrer steht eine URL/URI und keine Client-Angabe. Dazu gibt es den User-Agent.
        und wie kann ich die Client-Angabe änder?

        http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.43

        Schöne GRüße,
        Julian

        1. Hi,

          danke, aber wo muss ich das einbauen?

          Danke schon mal

          Stephan

          1. Hi,

            danke, aber wo muss ich das einbauen?

            na, wie fragst du denn eine HTML-Seite ab? Vermutlich öffnest du eine Verbindung und schickst dann "GET blablabla" rüber. Und genauso musst du davor dann den Useragent hinschicken.

            Schöne Grüße,
            Julian

            1. Hallo,

              kannst Du das nochmal erklären?

              wie kann ich das rübersenden? ich habe keine Ahnung... :-(

              Danke schon mal

              Stephan

              1. Hi,

                kannst Du das nochmal erklären?
                wie kann ich das rübersenden? ich habe keine Ahnung... :-(

                Schau dir mal das Beispiel hier an:
                http://php4-forum.de/befehle/fsockopen.htm
                Da bauen die eine Verbindung zu einer anderen Website auf und lassen sich mit
                fputs($fp,"HEAD /index.htm HTTP/1.0\nHost: www.php3-forum.de\n\n");
                ein paar Informationen über die index.htm schicken. Stattdessen hätten sie auch
                fputs($fp,"User-Agent: Stephans Webcrawler\nHEAD /index.htm HTTP/1.0\nHost: www.php3-forum.de\n\n");
                schreiben können, womit als Useragent "Stephans Webcrawler" übertragen wird. (nicht getestet)

                Schöne Grüße,
                Julian

                1. Ah, Super! Danke!

                  Stephan :-)

                2. Hi,

                  fputs($fp,"User-Agent: Stephans Webcrawler\nHEAD /index.htm HTTP/1.0\nHost: www.php3-forum.de\n\n");

                  Falsch - die erste Zeile ist immer die mit Methode usw. (HEAD/GET/POST/...).
                  Zusätzliche Header kommen danach (aber vor dem doppelten Zeilenumbruch).

                  cu,
                  Andreas

                  --
                  MudGuard? Siehe http://www.Mud-Guard.de/
                  Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
                  1. Hi Andreas,

                    fputs($fp,"User-Agent: Stephans Webcrawler\nHEAD /index.htm HTTP/1.0\nHost: www.php3-forum.de\n\n");

                    Falsch - die erste Zeile ist immer die mit Methode usw. (HEAD/GET/POST/...).
                    Zusätzliche Header kommen danach (aber vor dem doppelten Zeilenumbruch).

                    Na gut, aber von der Theorie hats gepasst *g*.

                    Schöne Grüße,
                    Julian

                3. Hallo,

                  ich öffne beim Craweln immer nur den Quelltext mittels

                  $result = file('', file('$url'));

                  kann ich das da auch einfach einbauen?

                  Danke schon mal

                  Stephan

                  1. Hallo!

                    $result = file('', file('$url'));

                    Was ist denn das? Das Du damit irgendwas auslesen kannst würde mich sehr wundern. Hast Du Dir mal durchgelesen wie file() funktioniert? http://de3.php.net/manual/de/function.file.php
                    Der 1. Parameter steht für den Pfad/URL, zum 2. Parameter steht im Manual:

                    "Optional kann der Parameter use_include_path  benutzt und auf '1' gesetzt werden, wenn in dem include_path ebenfalls nach der Datei gesucht werden soll."

                    Variablen die mit Single-Quotes eingeschlossen sind werden nicht ausgewertet: http://de3.php.net/manual/de/language.types.string.php#language.types.string.syntax.single

                    Wieso verwendest Du file() doppelt?

                    Wenn Du PHP >= 4.3.0 zur Verfügung hast, solltest Du Dir mal file_get_contents() ansehen.

                    kann ich das da auch einfach einbauen?

                    Nur über Verändern des Wertes von "user_agent" in der php.ini, siehe: http://cvs.php.net/co.php/php-src/php.ini-recommended

                    Weitere Informationen zum Ändern von Konfigurationseinstellungen findest Du ebenfalls im Manual: http://de3.php.net/manual/de/configuration.changes.php

                    Die Alternative wäre die Verwendung von fsockopen(), wie Julian es vorgeschlagen hast. Hier hast Du die komplette Kontrolle über alles was gesendet und empfangen wird - aber Du musst Dich dann auch mit dem HTTP-Protokoll auskennen, und Dich ggfs. mit HTTP-spezifischen Problemen rumschlagen.
                    http://de3.php.net/manual/de/function.fsockopen.php
                    Dort findest Du auch viele Beispiele, unter anderem auch in den Kommentaren.

                    Grüße
                    Andreas

              2. Hi,

                ich habe zwar auch wenig Ahnung, aber deine Aussage ...

                kannst Du das nochmal erklären?

                wie kann ich das rübersenden? ich habe keine Ahnung... :-(

                Danke schon mal

                ... ist doch schon oberdreist.

                Entweder Du weißt von was Du redest oder nicht.

                Ich wünsche dir trotzdem viel Erfolg mit deiner Frage, gleichzeitig hoffe ich aber auch, daß nur wenige auf deine Frage anworten.

                Gruss

                Frankie

                1. Hi Frankie,

                  kannst du nochmal genauer erklären, was dir jetzt nicht passt? Stephan war nicht unfreundlich und für Unwissen kann man niemanden bestrafen.

                  Schöne Grüße,
                  Julian

                  1. Hi Julian,

                    kannst du nochmal genauer erklären, was dir jetzt nicht passt? Stephan war nicht unfreundlich und für Unwissen kann man niemanden bestrafen.

                    ... natürlich kann ich, und auch ich bin der Meinung, dass man niemanden wegen seines Unwissens bestrafen darf (wenn es so wäre, wäre ich längst Masochist!), aber wenn einer behauptet, er hätte "seinen Crawler" fertig gestellt, dann darf man doch von einem gewissen Basiswissen ausgehen.

                    Liege ich da sooo falsch?

                    Ich darf aus dem 1. Posting von Stephan zitieren

                    ich habe mir jetzt gerade meinen Crawler fertig gestellt. Dieser soll meine nicht Datenbank basierte Seite in eine Datenbank übertragen, inklusive HTML.

                    Wenn ich ihn nun laufen lasse, was zeigt er mir dann als Referer an? es ist ein PHP Script. Kann ich auch irgendwie meinen eigenen Referer reinschreiben, also z.B. "Stephan´s Crawler - Version 1.0"?

                    [...]

                    Grüsse
                    Frankie

                    1. Hi!

                      kannst du nochmal genauer erklären, was dir jetzt nicht passt? Stephan war nicht unfreundlich und für Unwissen kann man niemanden bestrafen.
                      ... natürlich kann ich, und auch ich bin der Meinung, dass man niemanden wegen seines Unwissens bestrafen darf (wenn es so wäre, wäre ich längst Masochist!), aber wenn einer behauptet, er hätte "seinen Crawler" fertig gestellt, dann darf man doch von einem gewissen Basiswissen ausgehen.
                      Liege ich da sooo falsch?

                      Man darf davon ausgehen, weswegen ich am Anfang auch nur den Link zur RFC gepostet hab. Aber die Annahme muss nicht stimmen, weswegen am Ende auch ein Beispiel von mir kam. Was von ihm jetzt dreist sein soll, weil die eigene Annahme nicht gestimmt hat, kann ich nicht nachvollziehen.

                      Schöne Grüße,
                      Julian

                      1. Hi!

                        kannst du nochmal genauer erklären, was dir jetzt nicht passt? Stephan war nicht unfreundlich und für Unwissen kann man niemanden bestrafen.

                        Natürlich ist das dreist von Stephan, da ein "Crawler" eben keine 08/15-Anwendung darstellt.

                        Wenn der Stephan einen "eigenen Crawler" scripten möchte, dann darf man durchaus davon ausgehen, daß ein gewisses Basiswissen vorhanden ist.

                        Wenn ein Anfänger z.B. mit der 2-Frames-Frage daherkommt, dann wird ihm i.d.R. auch geholfen, aber wenn einer der wenig Ahnung hat einen "Crawler" umsetzen möchte ... hüstel ...

                        Grüsse
                        Frankie

                        1. Hallo,

                          ja, Basiswissen habe ich, allerdings auch nur in den Bereichen, die ich für einen Crawler benötige. Bis jetzt habe ich mich nicht mit diesem fsockopen() beschäftigt, da ich immer nur gleich den Quelltext öffne und Links folge. Ausserdem hat mir ein befreundeter Coder geholfen.

                          Ich verstehe den Code nichtmal ganz, aber beiße mich schon irgendwie durch.

                          Liebe Grüße

                          Stephan

                        2. Hallo!

                          Wenn ein Anfänger z.B. mit der 2-Frames-Frage daherkommt, dann wird ihm i.d.R. auch geholfen, aber wenn einer der wenig Ahnung hat einen "Crawler" umsetzen möchte ... hüstel ...

                          Und - ist das jetzt Dein Problem? Was sprach dagegen den Thread zu ignorieren?

                          Grüße
                          Andreas

                          1. Hi,

                            Und - ist das jetzt Dein Problem? Was sprach dagegen den Thread zu ignorieren?

                            .. nein, das ist kein Problem für mich ...

                            Was sprach dagegen dass Du den Thread ignorierst?

                            Aber es ist schon verwunderlich mit welch ungleichen Maßstäben einige Postings hier gemessen werden ...

                            Grüsse
                            Frankie

                            1. Hallo!

                              Aber es ist schon verwunderlich mit welch ungleichen Maßstäben einige Postings hier gemessen werden ...

                              Ich habe den Sinn Deines ersten Postings hier nicht wirklich verstanden.

                              Grüße
                              Andreas

                              1. Hi,

                                Ich habe den Sinn Deines ersten Postings hier nicht wirklich verstanden.

                                ... musst ja nicht alles verstehen ...

                                Aber wenn manch anderer hier rumrülpst (so wie z.B. Stephan) und ein unqualifizierter (so wie z.B. ich) (m)eine Meinung dazu abgibt gibt es sofort eine Diskussion welche ins Offtopic abschweift.

                                Hätte ein Regular z.B. ein "... steht in den FAQ" oder "... Google ist dein Freund" dahingerotzt, hättest Du dich sicherlich niemals dazu herabgelassen überhaupt zu schreiben.

                                Wenn sich einer ob meiner Äusserung angegriffen fühlen könnte, dann bist es sicherlich nicht Du. Weshalb Du dich dennoch einmischt, ist und bleibt mir ein Rätsel.

                                Grüsse
                                Frankie

                                1. Hallo!

                                  Aber wenn manch anderer hier rumrülpst (so wie z.B. Stephan)

                                  aha...

                                  und ein unqualifizierter (so wie z.B. ich) (m)eine Meinung dazu abgibt gibt es sofort eine Diskussion welche ins Offtopic abschweift.
                                  Hätte ein Regular z.B. ein "... steht in den FAQ" oder "... Google ist dein Freund" dahingerotzt, hättest Du dich sicherlich niemals dazu herabgelassen überhaupt zu schreiben.

                                  Was hat das mit "herablassen" zu tun? Abgesehen davon finde ich auch solche Postings meist nicht angebracht.

                                  Wenn sich einer ob meiner Äusserung angegriffen fühlen könnte, dann bist es sicherlich nicht Du.

                                  Nein, sicherlich nicht. Ich find es halt schade dass hier so oft überheblich und herablassend geantwortet wird... jeder hat mal angefangen. Und inzwischen glaube ich sogar - das passiert oft nichtmal bewußt!

                                  Sehr lesenswert zum Thema, das Posting von Stefan Münz vor einiger Zeit:
                                  http://forum.de.selfhtml.org/archiv/2003/9/57903/#m324482

                                  Vermutlich hätte ich lieber nichts hierzu gepostet, naja, jedenfalls habe ich auch keine große Lust wieder über solche Themen zu diskutieren.

                                  Grüße
                                  Andreas

                                2. ssion welche ins Offtopic abschweift.

                                  Hätte ein Regular z.B. ein "... steht in den FAQ" oder "... Google ist dein Freund" dahingerotzt, hättest Du dich sicherlich niemals dazu herabgelassen überhaupt zu schreiben.

                                  Sorry Frankie, aber pauschale Angriffe sind dumm...
                                  Andreas mischt sich hier auch ein wenn es ein anderer geschrieben hätte.
                                  Es gibt hier auch unter den Devs scheinbar unterschiedliche Auslegungen wie man welche Postings bewerten sollte.

                                  Auch sogenannte Regulars bekommen da mal was ab.
                                  Wenn Dir nicht passt.... den Rest kennst Du wohl selbst.

                                  Wenn sich einer ob meiner Äusserung angegriffen fühlen könnte, dann bist es sicherlich nicht Du. Weshalb Du dich dennoch einmischt, ist und bleibt mir ein Rätsel.

                                  Es geht Dich ja auch nichts an warum er sich einmischt das forum ist öffentlich :-D
                                  Und wenn er sich nicht angegriffen fühlen soll dann schreib Ihm das doch nicht solchen Unfug.
                                  Zum angeriffen fühlen oder nicht lese doch nochmals Deine Postings.

                                  Und ja Du darfst Dich von mir angegriffen fühlen das hast Du völlig umsonst.

                                  TomIRL

                                  1. Hi Tom,

                                    Sorry Frankie, aber pauschale Angriffe sind dumm...
                                    Andreas mischt sich hier auch ein wenn es ein anderer geschrieben hätte.

                                    Ja, pauschale Angriffe sind dumm, genau deshalb habe ich auch "gemeckert" ...

                                    Es gibt hier auch unter den Devs scheinbar unterschiedliche Auslegungen wie man welche Postings bewerten sollte.

                                    Auch das ist wohl richtig, aber soll ich deswegen schweigen? Das Forum ist öffentlich (wie Du weiter zuvor selbst schriebst) und genau deshalb schreibe ich hier auch ab und zu.

                                    Das einzige was mich wirlich stört ist, daß bei manchen Newbees irgendein fehlendes, aber belangloses, Attribut angemeckert wird ("... validiere erst mal deinen Code, dann sehen wir weiter ...") und bei anderen Fragen, welche in etwa auf das selbe Niveau des Fragers schliessen lassen, eine Grundsatzdiskussion losgetreten wird.

                                    Zum angeriffen fühlen oder nicht lese doch nochmals Deine Postings.

                                    Meine Postings sind wirklich nicht lesenswert, aber i.d.R. kritisiere ich niemanden ohne Grund.

                                    Ich werde demnächst mal ein triviales Problem mit "Susi, 16 aus München!!! HILFE!!!" absetzen, und Du wirst sehen, daß das mehr Beachtung findet als eine "Standardfrage" eines 08/15-Fragers. Über das Ergebnis informiere ich dich natürlich gerne.

                                    Und ja Du darfst Dich von mir angegriffen fühlen das hast Du völlig umsonst.

                                    Du hast mich heute "umsonst" angegriffen? Wann? Wo?

                                    Grüsse
                                    Frankie

                                    [EOT]