Thread get(link) funktioniert auf amazon nicht (11 answers)
Opened by everydayimhustlin at 2009-06-23 10:03

sid burn
 2009-06-23 17:50
#122638 #122638
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Jeder Client sendet einen sogenanten User Agent mit. Der User Agent ist nichts anderes als ein String der aussagt um welchen Client es sich handelt.

Dieser kann letztendlich so aussehen "Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)"

Der User Agent kann auf dem Server ausgewertet werden. Da dieser ausgewertet werden kann, kann sich Amazon z.B. entscheiden das bei bestimmten User-Agents eben nichts gesendet wird.

Und wenn du LWP nutzt so sendet dieser automatisch als default User Agent soetwas "libwww-perl/5.827" (am ende die Version). Wenn du allerdiengs ein LWP::UserAgent Objekt erstellst kannst du dort einfach die Methode "agent" aufrufen und den User Agent auf etwas beliebiges anderes stellen.

Eigentlich ist es schwachsinnig den User-Agent abzufragen eben darum weil er vom Client beliebig festgelegt werden kann.

Eine WebAPI zu verwenden ist aber in der Regel sinvoller. Den der aufbau des HTMLs kann sich ändern, womit ein Skript evtl. nicht mehr funktioniert, und weiterhin musst du dir praktisch händisch deine daten auslesen. Wenn es eine Web API gibt dann solltest du diese nutzen, da sie eigentlich nur Vorteile besitzt.

Und evtl. gibt es das was du tuen möchtest ja schon als Modul:
http://search.cpan.org/search?m=module&q=amazon&s=...
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread get(link) funktioniert auf amazon nicht