es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Bypassando la solicitud de consentimiento de la UE

He estado intentando extraer datos de las búsquedas en Google pero no puedo evitar el formulario de consentimiento “Antes de continuar con la búsqueda en Google”.

Intenté encontrar una solución alternativa y vi que otros han sugerido usar el argumento “CONSENT=PENDING+999”, o algo similar a “CONSENT=YES+HU.hu+V10+B+256” en la solicitud GET. Desafortunadamente, no pude hacer que el primero funcionara y en el segundo caso, no estoy completamente seguro de qué deberían reemplazar los últimos tres elementos.

Adjunto un código de muestra a continuación de aquí.

import requests
import bs4

headers = {'User-Agent':'Chrome 83 (Toshiba; Intel(R) Core(TM) i3-2367M CPU @ 1.40 GHz) Windows 7 Home Premium',
           'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
           'cookie': 'CONSENT=PENDING+999' # ¿Qué son los últimos tres elementos?
           #'cookie': 'CONSENT=YES+HU.hu+V10+B+256' # ¿Qué son los últimos tres elementos?
           }

text = "geeksforgeeks"
url = 'https://google.com/search?q=' + text

request_result = requests.get(url, headers=headers) # aquí es donde ocurre el problema

soup = bs4.BeautifulSoup(request_result.text, "html.parser")

print(soup) # no es lo que uno esperaría

heading_object = soup.find_all('h3')

for info in heading_object:
    print(info.getText())
    print("------")

Cualquier ayuda sería muy apreciada.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas para evitar el formulario de consentimiento “Antes de continuar con la búsqueda en Google” al raspar los resultados de búsqueda de Google. Has intentado usar el argumento CONSENT=PENDING+999 en las cabeceras, pero no ha funcionado. También encontraste una sugerencia de usar CONSENT = YES+HU.hu+V10+B+256, pero no estás seguro de qué deberían ser los últimos tres elementos.

    Para resolver este problema, puedes intentar usar un enfoque diferente que involucre el uso de una API de búsqueda de Google o una herramienta de raspado web que maneje automáticamente los formularios de consentimiento. Sin embargo, si aún quieres utilizar el enfoque de las cabeceras, aquí tienes algunas sugerencias:

    • La cabecera CONSENT=PENDING+999 puede que no funcione porque Google actualiza su formulario de consentimiento regularmente, y esta cabecera puede que ya no sea válida. Puedes intentar encontrar el último valor de cabecera inspeccionando el formulario de consentimiento utilizando las herramientas de desarrollo de tu navegador y copiando el valor de la cookie CONSENT.
    • La cabecera CONSENT=YES+HU.hu+V10+B+256 es específica de una región (Hungría) y una versión del navegador (Chrome 83). Si no estás en Hungría o utilizas un navegador/versión diferente, es posible que esta cabecera no funcione para ti. Puedes intentar encontrar la cabecera equivalente para tu región/navegador/versión o inspeccionar el formulario de consentimiento para obtener el último valor de la cookie.

    Si decides utilizar el enfoque de la cookie, puedes configurar la cabecera cookie de la siguiente manera:

    headers = {
        'User-Agent': 'Chrome 83 (Toshiba; Intel(R) Core(TM) i3-2367M CPU @ 1.40 GHz) Windows 7 Home Premium',
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'cookie': 'CONSENT=<valor de="" la="" cookie="">'
    }
    

    Reemplaza <valor de="" la="" cookie=""> con el valor real de la cookie que obtuviste al inspeccionar el formulario de consentimiento. Recuerda escapar cualquier carácter especial (por ejemplo, + se convierte en %2B).

Comments are closed.