Scraper de People Also Ask: preguntas, respuestas y fuentes de Google
Scraper en Python con Playwright para el PAA de Google: renderiza la SERP, hace clic para expandir, extrae respuesta y enlaces de fuente y recorre el grafo d…
On this page
Scraper de People Also Ask: preguntas, respuestas y fuentes de Google
TL;DR
- Extrae las preguntas del People Also Ask de Google, el contenido de respuesta detrás de ellas, los enlaces de fuente y los metadatos, a escala.
- El diagnóstico del README sobre los scrapers existentes es concreto: una herramienta solo HTTP recibe una cáscara vacía porque Google exige JavaScript, Selenium se detecta, y la mayoría recoge el texto de la pregunta sin la respuesta.
- La corrección tiene tres partes: Playwright con Chrome real, un perfil de navegador persistente que reduce el gatillo de captcha, y clic para expandir que extrae respuestas, fuentes y preguntas nuevas.
- La recursión en anchura está controlada por profundidad, así que una pregunta semilla se vuelve grafo en vez de lista.
Qué es y para quién
People Also Ask es un scraper en Python para la caja PAA de Google, hecho con Playwright. Viene como CLI y como biblioteca, y escribe JSON o CSV.
Es para quien hace investigación de palabras clave y quiere la pregunta que la gente realmente escribe, no la que inventa una herramienta; y para quien ya leyó suficientes "herramientas de PAA" para saber que la mitad devuelve texto de pregunta sin respuesta detrás.
Por qué se rompen los scrapers existentes
Los tres diagnósticos del README valen la pena porque explican el diseño:
- Un scraper solo HTTP falla. Google exige JavaScript para renderizar resultados, así que un
requests.get()devuelve una cáscara vacía, no la caja PAA. - Un scraper con Selenium se rompe. El sistema anti-bot de Google detecta ChromeDriver con facilidad, y los selectores internos
jsnamecambian sin aviso. - Sin extracción de respuesta. La mayoría recoge solo el texto de la pregunta, perdiendo el contenido de respuesta que aparece al hacer clic.
Cómo lo resuelve este
- Playwright con Chrome real (
channel="chrome") renderiza la página completa, incluida la caja PAA. - Un perfil de navegador persistente conserva cookies e historial, lo que el README dice que reduce mucho el gatillo de captcha.
- El clic para expandir extrae respuestas y enlaces de fuente, y descubre preguntas nuevas con recursión en anchura.
- Selectores resilientes con varias estrategias de fallback usan el atributo
data-qcomo clave principal en vez de tokensjsnamefrágiles. - La detección de captcha lanza un error claro en vez de parsear basura en silencio.
El último punto es el que salva la ejecución: un scraper que lee una página de captcha como si fueran resultados produce un dataset plausible y vacío, que es peor que un fallo.
Funciones
- Preguntas y respuestas — el texto de la pregunta más el contenido de la respuesta y los enlaces de fuente, no solo la pregunta.
- Recursión en anchura — al hacer clic en una pregunta se expande y revela dos o tres nuevas, con recorrido controlado por profundidad.
- Multi-idioma y geo —
hlpara idioma yglpara país, para resultados localizados. - Caché en SQLite — caché persistente opcional que evita volver a scrapear la misma consulta.
- Defensa anti-bot — perfil de Chrome persistente, rotación de user-agent, scripts stealth y detección de captcha.
- CLI y biblioteca — herramienta de línea de comandos, o biblioteca Python importable.
- Salida JSON y CSV — pregunta, respuesta, fuentes, profundidad y preguntas relacionadas.
Inicio rápido
pip install people-also-ask
playwright install chromium
El README señala que channel="chrome" requiere Google Chrome instalado en el sistema, y que pasar channel=None al constructor PaaScraper cambia a Chromium.
Cuándo usarlo, cuándo no
Úsalo cuando estás construyendo un mapa de temas y quieres las preguntas que Google muestra de verdad, cuando necesitas el contenido de respuesta detrás de cada pregunta en vez de la lista, o cuando quieres el grafo de preguntas de un tema con profundidad controlada.
No lo uses como crawler masivo sin vigilar captchas: la capa anti-bot del README reduce los gatillos y no promete eliminarlos. Tampoco lo uses como fuente de datos de ranking — el PAA da preguntas y fuentes, no volumen ni dificultad. Y ten en cuenta el control de profundidad: la recursión en anchura se expande más rápido de lo que esperas, y la profundidad es lo único que la limita.
Sources
- People Also Ask — repositorio — los tres diagnósticos, las cinco correcciones, funciones y requisitos citados arriba.
- README.md — comandos de instalación, inicio rápido, licencia (MIT).
Página del proyecto: People Also Ask scraper
Para el flujo que convierte estas preguntas en un plan de contenido priorizado, mira la skill de SEO, GEO y ASO, y para la auditoría técnica de las mismas páginas, One Prompt Security Audit.
El repositorio tiene licencia MIT.
FAQ
¿Necesita una clave de API de Google? No. Renderiza la página con Playwright y Chrome real, y el perfil persistente reduce los gatillos de captcha.
¿Extrae la respuesta o solo la pregunta? La respuesta: al hacer clic la pregunta se expande y el scraper extrae el contenido de respuesta y los enlaces de fuente, y además descubre preguntas nuevas.
¿Puede bajar más de un nivel? Sí, con recursión en anchura y control de profundidad, que es lo que limita el crawl.
¿Qué salida genera? JSON o CSV con pregunta, respuesta, fuentes, profundidad y preguntas relacionadas, más caché opcional en SQLite.