¿Cómo usar wget para descargar imágenes de mensajes en facebook?

3

Esto parece un poco más duro de lo habitual. Soy un nuevo usuario de wget y estaba pensando que tal vez sea posible iniciar sesión en Facebook y descargar solo imágenes de una conversación específica.

Quiero decir, me gustaría decirle a wget mi contraseña y mi usuario o usar cookies (también como escribir el comando de línea) y descargar SOLO IMÁGENES de una conversación.

Sé que esto es seguro, pero ¿cómo lo haría?

user319100
fuente

Respuestas:

0

Puede iniciar sesión en el script (si tiene las credenciales y no se enfrenta a cosas como Captchas) mediante el uso de herramientas como Ruby Mechanize, pero para empezar, puede comenzar por iniciar sesión con su navegador web y exportar las cookies creadas. en el proceso. Para eso, no necesita conocer la parte interna de los formularios de inicio de sesión de FB, pero sí necesita instalar una extensión de navegador que le permita exportar cookies (para un sitio en particular o para todos).

Con Chrom (e | ium) puedes usar https://chrome.google.com/webstore/detail/cookietxt-export/lopabhfecdfhgogdbojmaicoicjekelh . Esto exporta cookies para el sitio en el que se encuentra actualmente.

Con sus cookies de inicio de sesión exportadas (supongo que las guardó en cookies.txt ) necesitas cargarlos en wget y suministre una cadena de UserAgent de un navegador real (para que FB no le dé lo que quiere). A continuación utilizo "Mozilla / 5.0 (Windows NT 6.3; Win64; x64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 37.0.2049.0 Safari / 537.36", que obtuve de http://useragentstring.com/ . Ahora usted puede wget una página de FB como si estuviera en un navegador web donde ha iniciado sesión en FB:

wget --load-cookies="cookies.txt"\
     -U "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36"\
      https://www.facebook.com

Reemplazar https://www.facebook.com con la URL de tu conversación y estás a mitad de camino.

La parte más difícil es tratar con el resultado. No puedes usar exactamente wget características tales como -A .jpg Porque un FB no es realmente una página estática tan simple. La mayoría de las cosas en FB se generan dinámicamente con javascript. Si no desea utilizar un motor javascript completo y quiere que le proporcione las imágenes que realmente se renderizan, puede recurrir a métodos toscos, como grepping a todos img etiquetas (independientemente de dónde se encuentren y si están vigentes) y luego descargue cada una de ellas:

cat "$YOUR_DOWNLOADED_HTML" | grep '<img[^>]*>' -o | grep -Po '(?<=src=\")[^"]*' | \
while read url
  do
    wget --load-cookies="cookies.txt"\
         -U "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)            Chrome/37.0.2049.0 Safari/537.36"\
      "$url"
  done
PSkocik
fuente