2011-07-25 120 views
4

我正在嘗試使用「wget」獲取Facebook用戶的個人資料頁面,但不斷收到一個名爲「browser.php」的非個人資料頁面,該頁面與該特定用戶無關。個人資料頁面的URL,因爲我在瀏覽器中看到恰好是以下格式:wget用於抓取Facebook個人資料/朋友頁面

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根本不適合這樣的場景?

任何幫助將不勝感激。

要向此查詢添加上下文,我需要弄清楚如何使用wget從Facebook獲取這些頁面,因爲這樣可以幫助我編寫腳本/程序從HTML源代碼中查找好友的配置文件URL,然後看看他們的其他關鍵字等。我基本上希望這可以幫助我進行某種有選擇性的爬行(當然還有Facebook的許可)我沒有連接的人。

回答

2

首先,Facebook可能創建了某些用戶代理(例如wget)無法抓取頁面的情況。因此,他們重定向某些用戶代理喲不同的頁面,可能會說「您的瀏覽器不受支持」他們這樣做是爲了防止人們完全做你正在做的事情。但是,您可以使用wget的-U參數告訴wget將自己標識爲不同的代理程序(請參閱wget手冊頁)。例如其次,Facebook的隱私設置很少允許您閱讀任何/很多信息,除非您以用戶身份登錄,並且可能只是作爲您試圖抓取的配置文件的朋友的用戶。

最後,您需要使用Facebook API來抓取並從Facebook提取信息 - 如果您嘗試以任何其他方式獲取信息,您可能違反了可接受使用策略。

+0

如果一個人誰不在我的網絡上發佈她的朋友的名單,那麼從Facebook的角度來看,它仍然是一個私人信息? – rogerchucker

+0

我第一次考慮去Facebook API路線(特別是圖形API),但好像所有的朋友信息都需要訪問令牌,我想這樣做不顯眼。即使這是嚴格的學術研究,這是否會違反Facebook的政策? – rogerchucker

+0

通過Facebook API的Facebook數據的一般規則很簡單 - *如果您可以通過Facebook API獲取,那麼它是您已獲准訪問的數據或公開的數據。* 大多數Facebook API將允許您向用戶索取數據,API將返回您已查詢的數據**和**您可以查看的數據。因此你在處理facebook數據時的應用程序應該被構建,以便它可以接受數據**和**沒有數據被返回類似的請求。 – Soren

1

我不知道爲什麼你想使用wget ..facebook提供了一個很好的API。

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

將公共可用內容保存到文件中。

你應該考慮使用他們的API。

Facebook Developers

+0

謝謝克裏希。不幸的是,這是行不通的,因爲它給了我一個文件(其中文件名是用戶名),沒有信息,如果我通過更改用戶代理向Facebook「撒謊」不會Facebook實際上對象時尋求真正的爬行許可(因爲這是我的最終目標)? 我想使用wget,因爲我什麼都不知道。其他任何建議都會非常有幫助 - 我正在尋找可以在腳本或程序中使用的任何內容。 – rogerchucker

+1

Krish,Facebook API需要每個用戶的訪問令牌,這些用戶的配置文件正在嘗試提取。在不引人注目的數據收集中這是不切實際的。 – rogerchucker

1

如果你想保存登錄頁面,您可以用Firefox登錄在「記住我的登錄」選中,然後這些Cookie複製到文件中,並與cookiejar選擇使用它們。您仍然會擁有相當多的動態腳本加載內容,WGET無法保存。

有很多方法來剝皮這隻貓。如果您需要提取特定項目,請查看API。如果您只是想將網頁快照存檔爲網頁瀏覽器,請嘗試使用CutyCapt。這很像wget,只是它將整個文檔解析爲網頁瀏覽器並存儲頁面的圖像。

0

您可以輕鬆地重複使用的Firefox cookie來登錄: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

相關問題