Вы можете выполнить сценарий входа в систему (если у вас есть учетные данные и вы не сталкиваетесь с такими вещами, как 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