Извлечь фанатскую базу со страницы Facebook - PullRequest
2 голосов
/ 09 ноября 2010

Я пытаюсь экспортировать фанатов Facebook.

Чем ближе я нашел, тем эта статья .

В нем говорится:

Получение фанатов со страницы Facebook еще не поддерживается API Facebook. К счастью, веб-интерфейс Facebook использует простой вызов AJAX / JSON для предоставления данные при просмотре страницы. данные при просмотре страницы.

И он объясняет, что он делает так:

Моя стратегия по освобождению этих данных была нюхать сетевой трафик с помощью Инструмент Wireshark, а затем воспроизвести HTTP вызовы с помощью сценария ruby. вызовы с помощью сценария ruby.

Я ничего не знаю о ruby, поэтому я начал пробовать скрипты PHP, оставленные в одном из комментариев: "Etienne Bley"

Сценарий выглядит как this .

Сценарий говорит, что вы можете скачать Charles Proxy , чтобы найти следующие переменные:

$cookie
$node_id
$post_form_id
$fb_dtsg

Когда я использую софт Charles Proxy и захожу как администратор, я получаю следующее: alt text

И оттуда я получаю, как мне кажется, переменную cookie:

alt text

Кстати, безопасно ли делиться всем куки? это полезно? (если это я буду редактировать как можно скорее)

Сценарий также говорит:

// set settings in these 4 lines from results of charles when getting the 2nd page of "Get All Fans" in FB ( you need to be admin of fan page to do this )

Я не могу понять, что он имеет в виду: getting the 2nd page

Итак, мои вопросы:

1) Что это за переменные?

2) Каковы их значения? Как / можно получить их?

3) Для корректной работы скриптов это единственное, что мне нужно для работы этого скрипта?

Надеюсь, вопрос достаточно ясен, если нет, пожалуйста, задавайте любые вопросы, которые вам нужны!

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 09 ноября 2010

Я не знаю о Charles Proxy Soft, но я использовал превосходный Chrome Inspector для отслеживания запроса.

Шаги:

  1. Используйте Chrome для перехода на интересующую вас страницу Facebook
  2. Откройте Инспектор (CTRL + Shift + J в Windows), перейдите на вкладку «Ресурсы» и «Включить отслеживание ресурсов».
  3. На странице Facebook нажмите «Просмотреть все» в поле «Поклонники» в левой части страницы.
  4. Прокрутите список поклонников до конца и нажмите «Далее»
  5. На вкладке Ресурсы у вас будет запрос к /ajax/social_graph/fetch.php. Нажмите на это, и на вкладке Заголовки вы увидите, что вам нужно. В моем примере: Chrome Inspector

Я уверен, что вы можете сделать это с сотней других программ, мне проще использовать Chrome, поскольку он уже есть:)

0 голосов
/ 09 ноября 2010

Хорошо, похоже, все просто. Я рекомендую получить копию Fiddler , чтобы проверить этот план самостоятельно.

Я открыл фан-страницу, пошел посмотреть фанатов и зашел на следующую страницу. Я увидел POST-запрос на http://www.facebook.com/ajax/social_graph/fetch.php?__a=1. Я получил действительно хороший JSON-массив, содержащий всех фанатов.

Если мы проверим опубликованные переменные, это станет очевидным ...

edge_type = fan
page = 1
limit = 100
node_id = 123123123123123123123 (ID of the fan page I'm assuming)
class = FanManager
post_form_id = 97823498723498 (No idea, but I bet you can get this from the dialog)
fb_dtsg = a1s3d5f (No idea)
lsd = 
post_form_id_source = AsyncRequest

В любом случае, вас интересует страница и лимит. Бьюсь об заклад, если вы установите страницу на 0 и лимит 500 или что-то еще, вы получите то, что вы ищете. Если вы не можете изменить лимит надежно, просто оставьте его равным 100 и продолжайте увеличивать страницу. Кроме того, у меня есть мои куки с информацией о сеансе. Как вы будете получать их и писать из PHP, я не знаю, но я надеюсь, что это даст вам кое-что для продолжения.

Опять же, получите Скрипач , проверьте, что происходит, когда вы просматриваете страницу.

...