wget для загрузки профиля Facebook / страниц друзей

Я пытаюсь получить facebook страницу профиля пользователя, используя "wget", но продолжаю получать непрофильную страницу с именем "browser.php", которая не имеет ничего общего с этим конкретным пользователем. URL страницы профиля, как я вижу в браузере, имеет следующий формат:

http://www.facebook.com/user-name

и это то, что я использовал в качестве аргумента команды wget:

wget http://www.facebook.com/user-name

Мне также интересно использовать wget для получения списка друзей пользователя, но даже это дает мне тот же бесполезный результат ("browser.php"):

wget http://www.facebook.com/user-name?sk=friends&v=friends

Может ли кто-нибудь любезно посоветовать мне, что я здесь делаю не так? Другими словами, я пропускаю некоторые ключевые опции для команды wget или wget вообще не подходит для такого сценария?

Любая помощь будет оценена.

Чтобы добавить контекст к этому запросу, мне нужно выяснить, как извлечь эти страницы из Facebook с помощью wget, так как это помогло бы мне написать скрипт / программу для поиска URL-адресов профилей друзей из исходного кода HTML, а затем найти некоторые другие ключевые слова на них и т. д. Я в основном надеюсь, что это поможет мне в некотором избирательном сканировании (конечно, с разрешения Facebook) людей, с которыми я не связан.

4 ответа

Во-первых, Facebook, вероятно, создал условие, при котором определенные пользовательские агенты (например, wget) не могут сканировать страницы. Таким образом, они перенаправляют определенных пользовательских агентов на другую страницу, которая, вероятно, говорит что-то вроде "ваш браузер не поддерживается". Они делают это, чтобы защитить людей от того, что вы делаете. Однако вы можете указать wget идентифицировать себя как другого агента, используя -U аргумент для wget (читайте страницу руководства wget). например wget -U Mozilla http://....

Во-вторых, настройки конфиденциальности Facebook редко позволяют вам прочитать какую-либо / большую информацию, если вы не вошли в систему как пользователь, и, вероятно, только как пользователь, который является другом профиля, который вы пытаетесь очистить.

В-третьих, существует API-интерфейс Facebook, который необходимо использовать для сканирования и извлечения информации из Facebook - вы, вероятно, нарушаете политику допустимого использования, если пытаетесь получить информацию любым другим способом.

Если вы хотите сохранить страницу входа в систему, вы можете войти в Firefox с выбранным "Оставить меня в системе", затем скопировать эти файлы cookie в файл и использовать их с параметром cookiejar. У вас все еще будет довольно много динамического загруженного скрипта контента, который WGET не собирается сохранять.

Есть много способов снять шкуру с этой кошки. Если вам нужно извлечь конкретный элемент, проверьте API. Если вы просто хотите заархивировать снимок страницы так, как он выглядит в веб-браузере, попробуйте CutyCapt. Это очень похоже на wget, за исключением того, что он анализирует весь документ, как это делает веб-браузер, и сохраняет изображение страницы.

Проверьте следующие проекты с открытым исходным кодом:

  • facebook-cli это утилита командной строки для взаимодействия с API Facebook.
  • facebook-friends который может генерировать HTML-страницу всех ваших друзей на Facebook.

Я не знаю, почему вы хотите использовать wget ..facebook предлагает отличный API .

wget --user-agent=Firefox http://www.facebook.com/markzuckerberg

сохранит общедоступный контент в файл.

Вы должны рассмотреть возможность использования их API .

Разработчики Facebook

Чтобы загрузить страницу Facebook, используя wgetВы можете использовать Chrome DevTools в своем веб-браузере (также в Firefox, Opera и других).

Во-первых, вам нужно преобразовать его в curl перейдите на вкладку Сеть (при необходимостиобновите страницу или установите флажок Сохранить журнал), найдите интересующую вас страницу (вы можете отфильтровать список), щелкните правой кнопкой мыши запрос / страницу и выберите " Копировать как cURL". Затем вставьте команду в терминал.

Преобразовать из curl отформатировать в wget, выполните следующие преобразования:

  • Удалить --compress параметр,
  • менять -H в --header во всех местах.

Также подумайте о добавлении следующего wget параметры:

  • -k или же --convert-links, чтобы преобразовать ссылки в документе, чтобы сделать их пригодными для локального просмотра.
  • -p или же --page-requisites, чтобы загрузить все файлы, которые необходимы для правильного отображения страницы.

Смотрите также:

Вы можете легко использовать файлы cookie Firefox для входа в систему: https://askubuntu.com/questions/161778/how-do-i-use-wget-curl-to-download-from-a-site-i-am-logged-into

Кто может видеть ваш список друзей, настраивается, поэтому, если кто-то настраивает его только для друзей, вы не сможете извлечь эту информацию.

Также я рекомендую использовать мобильный сайт, который использует нумерацию страниц вместо загрузки AJAX и имеет более простой, меньший HTML: https://m.facebook.com/USER/friends?startindex=24

И вот (очень ограничительные) термины очистки: https://www.facebook.com/apps/site_scraping_tos_terms.php

Другие вопросы по тегам