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.
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 usarCONSENT = 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:
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 cookieCONSENT
.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: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
).