tutorial spider scraping library con code python web-scraping python-requests bots

python - spider - Botón "Hacer clic" con solicitudes



web scraping beautifulsoup tutorial (1)

Como puede ver en el recorte que publicó, al hacer clic en el botón se activa un código JavaScript, a saber, un método llamado myClick() .

No es sencillo hacer clic en esto usando la biblioteca de solicitudes de pitones. Es posible que tenga más suerte tratando de averiguar qué sucede dentro de myClick() . Creo que en algún momento, se realizará una solicitud POST a un punto final HTTP. Si puede resolver esto, puede traducirlo a su código python.

Si eso no funciona, otra opción sería usar algo como Selenium / PhantomJS, que le da la capacidad de tener un navegador real, sin cabeza y con secuencias de comandos. Usando una herramienta de este tipo, puede hacer que complete formularios y haga clic en los botones. Puedes echar un vistazo a esto para responder , ya que te muestra cómo usar Selenium + PhantomJS de Python.

Asegúrate de no abusar de estos métodos mediante foros de correo no deseado o [inserta actividad ilegal o de otro modo abusiva aquí].

Tengo este pequeño sitio web. Quiero completar un formulario con la biblioteca de solicitudes. El problema es que no puedo acceder al siguiente sitio al completar los datos del formulario y presionar el botón (Entrar no funciona).

Lo importante es que no puedo hacerlo a través de un bot de algún tipo. Esto debe hacerse para que pueda ejecutar sin gráficos.

info = {''name'':''JohnJohn'', ''message'':''XXX'', ''sign'':"XXX", ''step'':''1''}

Las tres primeras entradas nombre, mensaje, signo son las áreas de texto y el paso es Creo que el botón.

r = requests.get(url) r = requests.post(url, data=info) print(r.text)

Los datos de formulario se ven así cuando envío una solicitud a través de Chrome manualmente:

  • nombre: JohnJohn
  • mensaje: XXX
  • signo: XXX
  • paso 1

El elemento del botón se ve así:

<td colspan="2" style="text-align: center;"> <input name="step" type="hidden" value="1"> <button id="button" type="button" onclick="myClick();" style="background-color: #ef4023; width: 80px; font-face: times; font-size: 14pt;"> Wyślij </button> </td>

El siguiente sitio si hago esto manualmente tiene las mismas direcciones.