wget для загрузки профиля Facebook / страниц друзей - PullRequest
5 голосов
/ 26 июля 2011

Я пытаюсь получить 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) людей, с которыми я не связан.

Ответы [ 6 ]

2 голосов
/ 26 июля 2011

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

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

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

1 голос
/ 11 января 2013

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

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

1 голос
/ 26 июля 2011

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

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

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

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

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

0 голосов
/ 15 января 2019

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

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

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

  • remove --compress параметр,
  • изменить -H на --header во всех местах.

Также рассмотрите возможность добавления следующих параметров wget:

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

См. Также:

0 голосов
/ 15 января 2019

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

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

Вы можете легко использовать файлы cookie Firefox для входа в систему, см .:

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

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

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

...