Estoy usando selenio para raspar la página de resultados de búsqueda de Amazon. Mientras lo terminaba, cambié mi raspado al modo sin cabeza, ya que ahorrará eficiencia. Sin embargo , en el modo sin cabeza, ciertos elementos de la página no están disponibles , como la marca patrocinada. Funciona perfectamente bien cuando se usa el modo sin cabeza, pero falla incluso después de configurar las siguientes opciones:
options = Options() #options.headless = True options.add_argument("--window-size=1920,1080") options.add_argument("--disable-extensions") options.add_argument("--proxy-server='direct://'") options.add_argument("--proxy-bypass-list=*") options.add_argument("--start-maximized") options.add_argument('--headless') options.add_argument('--disable-gpu') options.add_argument('--disable-dev-shm-usage') options.add_argument('--no-sandbox') options.add_argument('--ignore-certificate-errors') options.add_argument('--allow-running-insecure-content') driver = webdriver.Chrome(options=options)PD: Probé con y sin la sección comentada así como solo con la sección comentada.
Para fines de aclaración, hice una captura de pantalla de cada ejemplo: así es como se ve cuando se ejecuta en modo sin cabeza y así es como se ve normalmente (sin el modo sin cabeza y con la navegación normal del usuario). Me pregunto qué más se debe agregar para que aparezca la información de la marca patrocinada cuando la ejecuto en modo sin cabeza. Estoy pensando que puede ser un problema con JavaScript que no se comunica correctamente con el navegador.
Como siempre, gracias de antemano!!
Usando la última versión de Google Chrome v95.0
Cuando utiliza el navegador google-chrome de cabeza normal, se utiliza el siguiente agente de usuario :
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36Mientras que cuando usa el navegador google-chrome-headless , se usa el siguiente agente de usuario :
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/95.0.4638.69 Safari/537.36 La presencia del parámetro/atributo Headless adicional se intercepta como un bot . Por eso ves la diferencia.