Saltar al contenido

Android: ¿cómo puedo exportar la lista de pestañas abiertas de Chrome?

Solución:

Puede usar la función Dispositivos remotos en el depurador de Chrome para conectarse a Chrome en el dispositivo y acceder a las pestañas. Simplemente expanda la lista de pestañas visibles para obtener la lista completa y luego resalte y copie todo lo que se muestra (incluidas las URL) en el portapapeles: https://developers.google.com/web/tools/chrome-devtools/remote-debugging/

Me las arreglé para exportar ~ 400 pestañas de esta manera.

Acabo de unirme a este StackExchange para mostrar algo de agradecimiento por la respuesta de Jeremy anterior, y también agregar las pocas líneas de JS que usé para exportar la lista de pestañas (¡ya que copiar con el cursor no es ideal!)

Como dijo Jeremy, seleccione Remote devices debajo More tools en herramientas de desarrollo de Chrome icono (parte superior derecha del panel):

  • configurar la depuración USB en su teléfono (en SettingsDeveloper options, root no es necesario)
    • tenga en cuenta que debe habilitar el Developer options menú, está oculto de forma predeterminada para proteger a los usuarios
    • en mi teléfono esto requirió tocar varias veces en el número de compilación debajo SettingsAbout Device
  • Una vez hecho esto, conecte su USB y permita la conexión MTP
  • cuando el panel del dispositivo remoto de Chrome devtools está abierto, el teléfono solicitará permitir la depuración de USB
    • puedes optar por confiar siempre en la computadora

Ahora el dispositivo está conectado,

  • abra una segunda vista de devtools en la vista de devtools desde la que seleccionó Remote devices para poder recuperar la lista de pestañas usando JavaScript
    • tenga en cuenta que debe tener devtools en modo emergente (use el símbolo de puntos suspensivos verticales en la parte superior derecha del panel) para poder subir esto, de lo contrario Comando + Opción + J (MAC) Ctrl+Shift+J(WINDOWS) simplemente cerrará el primer panel de devtools.
  • expanda la lista desde los primeros elementos a todas las pestañas haciendo clic en “Mostrar más”
  • para realizar un script contra la lista, use las siguientes líneas de código [entered in the console of the 2nd devtools window]

Para exportar una lista de todas las URL abiertas en Chrome para Android, elegí convertir la lista en una cadena de texto con formato de rebajas y copiarla en el portapapeles.

let bookmarkList = Array.from(document.querySelectorAll('.widget>.vbox'))
  .map(e => e.shadowRoot)
  .map(e => e && e.querySelector('.device-page-list'))
  .find(e => e);

let bookmarks = Array.from(bookmarkList.querySelectorAll('.vbox'))
  .map(e => `[${e.querySelector('.device-page-title').innerHTML}](${e.querySelector('x-link').innerHTML})`);

copy(bookmarks.join('n'));

A continuación, tendrá una lista en su portapapeles con este aspecto:

[How can I export the list of open Chrome tabs? - Android Enthusiasts Stack Exchange](https://android.stackexchange.com/questions/56635/how-can-i-export-the-list-of-open-chrome-tabs)
[Get Started with Remote Debugging Android Devices  |  Tools for Web Developers  |  Google Developers](https://developers.google.com/web/tools/chrome-devtools/remote-debugging/)
[How To Enable USB Debugging On Your Android Phone](https://www.groovypost.com/howto/mobile/how-to-enable-usb-debugging-android-phone/)
[Configure On-Device Developer Options | Android Studio](https://developer.android.com/studio/debug/dev-options.html)
...

tl; dr:

  • tener las herramientas de línea de comandos de Android instaladas en una máquina de desarrollo y la depuración USB habilitada en su dispositivo. No es necesario rootear el dispositivo
  • adb forward tcp:9222 localabstract:chrome_devtools_remote
  • wget -O tabs.json http://localhost:9222/json/list

Detalles:

Si tiene las herramientas de línea de comandos de Android instaladas en una máquina de desarrollo y ha habilitado la depuración de USB en su dispositivo Android, puede hacer lo siguiente:

  • Ejecutar adb forward tcp:9222 localabstract:chrome_devtools_remote en su máquina de desarrollo.

    Las instancias de Chrome exponen el acceso a un protocolo de depuración a través de un socket de dominio Unix con la dirección abstracta “chrome_devtools_remote“. Lo anterior adb El comando reenvía las solicitudes realizadas al puerto 9222 en su máquina de desarrollo, hacia ese socket de dominio Unix. (Puede obtener una lista de todos los sockets de dominio Unix en el dispositivo Android escribiendo adb shell cat /proc/net/unix.)

    Usando esto, podemos ejecutar wget o curl (o de hecho, un navegador) y recuperar información de la instancia de Chrome del dispositivo móvil.

  • La información de depuración se proporciona como datos JSON a través de HTTP. Se puede obtener un archivo JSON que enumera las pestañas abiertas ejecutando wget -O tabs.json http://localhost:9222/json/list.

    (Otros puntos finales de la API se pueden encontrar en https://github.com/buggerjs/bugger-daemon/blob/master/README.md#api).

Consulte aquí para obtener más detalles sobre cómo habilitar la depuración USB y aquí para obtener una descripción general de cómo funciona.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *