3

Это выглядит немного сложнее, чем обычно. Я новый пользователь wget, и я подумал, что, возможно, можно каким-то образом войти в Facebook и загрузить только изображения из определенного разговора.

Я имею в виду, что я хотел бы сказать wget свой пароль и пользователя или использовать куки (также как написать команду line) и загрузить ТОЛЬКО ИЗОБРАЖЕНИЯ из разговора.

Я знаю, что это возможно, но как мне это сделать?

1 ответ1

0

Вы можете выполнить сценарий входа в систему (если у вас есть учетные данные и вы не сталкиваетесь с такими вещами, как Captchas), используя такие инструменты, как Ruby Mechanize, но для начала вы можете войти в систему с помощью веб-браузера и экспортировать созданные файлы cookie в процессе. Для этого вам не нужно знать внутреннюю часть форм входа в FB, но вам нужно установить расширение для браузера, позволяющее экспортировать файлы cookie (для определенного сайта или всех из них).

С Chrom(e | ium) вы можете использовать https://chrome.google.com/webstore/detail/cookietxt-export/lopabhfecdfhgogdbojmaicoicjekelh . Это экспортирует куки для сайта, на котором вы сейчас находитесь.

С экспортированными куки-файлами вашего логина (я предполагаю, что вы сохранили их в cookies.txt), вам нужно загрузить их в wget и предоставить строку UserAgent реального браузера (чтобы FB не давал вам то, что вы хотите). Ниже я использую «Mozilla /5.0 (Windows NT 6.3; Win64; x64) AppleWebKit /537.36 (KHTML, как Gecko) Chrome /37.0.2049.0 Safari /537.36», который я получил с http://useragentstring.com/ . Теперь вы можете wget страницу FB, как если бы вы были в веб-браузере, где вы вошли в 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

Замените https://www.facebook.com на URL вашего разговора, и вы уже на полпути.

Более сложная часть связана с результатом. Вы не можете точно использовать функции wget такие как -A .jpg потому что FB на самом деле не такая простая статическая страница. Большинство вещей на FB генерируется динамически с помощью JavaScript. Если вы не хотите использовать полноценный движок JavaScript и он дает вам изображения, которые фактически отображаются, вы можете прибегнуть к грубым методам, таким как отключение всех тегов img (независимо от того, где они находятся и действуют ли они). ) и затем загрузите каждый из них:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .