Tengo un script Perl que usa WWW::Mechanize para leer desde un archivo y realizar algunas tareas automatizadas en un sitio web. Sin embargo, el sitio web utiliza un redireccionamiento 302 después de cada vez que solicito una determinada página. No quiero ser redireccionado (la página a la que redirige tarda demasiado para responder); Solo quiero recorrer el archivo y llamar al primer enlace una y otra vez. No puedo entender cómo hacer que WWW :: Mechanize NO siga los redireccionamientos. ¿Alguna sugerencia?¿Cómo puedo evitar que WWW :: Mechanize siga los redireccionamientos?
Respuesta
WWW::Mechanize
es una subclase de LWP::UserAgent
. Entonces puede usar cualquier método LWP::UserAgent
.
my $mech = WWW::Mechanize->new();
$mech->requests_redirectable([]);
WWW :: Mechanize es una subclase de LWP :: UserAgent; puede establecer las opciones max_redirect o requests_redirectable en el constructor como lo haría con LWP :: UserAgent.
Puede utilizar $ agent-> max_redirect (0) ;, como en este ejemplo:
#!/usr/bin/perl -w
use strict;
use WWW::Mechanize;
my $agent = WWW::Mechanize->new('autocheck' => 1, 'onerror' => undef,);
$agent->max_redirect(0);
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);
$agent->max_redirect(1);
$agent->get('http://www.depesz.com/test/redirect');
printf("Got HTTP/%s from %s.\n", $agent->response->code, $agent->uri);
Cuando se ejecuta imprime:
Got HTTP/302 from http://www.depesz.com/test/redirect.
Got HTTP/200 from http://www.depesz.com/.
Así, con max_redirect (0) - se claramente no sigue redirecciones.
Por extraño que parezca, cambiar el max_redirect a 0 no funcionó para mí (sospecho que es un error en otro lugar de mi código con ese efecto indirecto, ya que DEBERÍA funcionar), pero el cambio de requests_redirectable funcionó. – rfusca
En otra nota ... uso su sitio web depesz.com todo el tiempo. Gran recurso para Postgres. – rfusca
- 1. ¿Cómo uso y debo depurar WWW :: Mechanize?
- 2. ¿Cómo puedo agregar una barra de progreso a WWW :: Mechanize?
- 3. ¿Cómo uso WWW :: Mechanize para marcar una casilla de radio?
- 4. Cómo evitar que apache http client siga una redirección
- 5. ¿Cómo puedo acceder a formularios sin nombre o ID con Perl's WWW :: Mechanize?
- 6. ¿Cómo puedo obtener WWW-Mechanize para iniciar sesión en el sitio web de Wells Fargo?
- 7. ¿Hay un equivalente PHP de WWW :: Mechanize de Perl?
- 8. ¿Hay un equivalente .NET de Perl's LWP/WWW :: Mechanize?
- 9. ¿Cómo puedo evitar que la seguridad de primavera se anexe; jsessionid = XXX a los redireccionamientos de inicio de sesión?
- 10. Perl WWW :: Mechanize (o LWP) obtener redirigir url
- 11. ¿Cómo hacer que Find.find de Ruby siga los enlaces simbólicos?
- 12. ¿Cómo puedo hacer que mi ArrayAdapter siga el patrón ViewHolder?
- 13. ¿Cómo puedo hacer que System.Net.Http.HttpClient no siga 302 redirecciones?
- 14. ¿Cómo rastrear los redireccionamientos en Firefox?
- 15. Magento: cómo eliminar todos los redireccionamientos permanentes
- 16. ¿Cómo evitar que jQuery ajax siga una redirección después de una publicación?
- 17. ¿Cómo puedo evitar que Hibernate actualice los valores NULL?
- 18. ¿Cómo puedo evitar que se sobrescriban los artefactos desplegados anteriormente?
- 19. ¿Cómo puedo evitar que los usuarios cometan binarios en subversión?
- 20. ¿Puede HtmlUnit manejar los redireccionamientos de JavaScript?
- 21. Redirigir URL que no sea www a www usando .htaccess
- 22. ¿Cómo puedo evitar que mercurial empuje subrepos?
- 23. ¿Cómo descargo un archivo con WWW :: Mechanize después de enviar un formulario?
- 24. Python HTTP HEAD: ¿trata adecuadamente los redireccionamientos?
- 25. ¿Cómo formatearé Zend_Form_Element_Radio para que la etiqueta siga la entrada?
- 26. ¿Cómo puedo evitar los decimales de redondeo?
- 27. ¿Cómo puedo evitar los cierres de Javascript?
- 28. Siga los enlaces de redirección en scrapy
- 29. ¿Cómo puedo evitar que se seleccione texto?
- 30. ¿Cómo puedo evitar que CompileAssemblyFromSource pierda memoria?
He intentado establecer el max_redirect en 0, pero no lo afectó. – rfusca
Si, de hecho, max_redirect no está afectando si LWP y Mech no siguen los redireccionamientos, entonces ese es un error que debería ser informado. –