2013-09-24 103 views
0

所以我試圖用BeautifulSoup解析公共Facebook頁面。我已經成功地削減LinkedIn,但我花了幾個小時試圖讓它在Facebook上工作,沒有運氣。我試圖使用的代碼看起來是這樣的:使用BeautifulSoup解析Facebook

for urls in my_urls: 
try: 
    page = urllib2.urlopen(urls) 
    soup = BeautifulSoup(page) 
    info = soup.find_all("div", class_="fsl fwb fcb") 
    info2 = info.findall('a') 

是令人沮喪的我的部分是我可以出來拿到冠軍元素,我甚至可以得到相當遠了文件,但我不能到達我需要的地方。

此行successfuly抓起PAGETITLE:

info = soup.find_all("title", attrs={"id": "pageTitle"}) 

這條線可以得到相當遠了元素列表,但不能走得更遠任何。

info = soup.find_all(id="pagelet_timeline_main_column") 

下面是我試圖解析一個示例頁面,我想目前的城市從它:

https://www.facebook.com/100004210542493

和我想要的部分看起來像繼承人快速截圖:

http://prntscr.com/1t8xx6

我覺得我真的很接近,但我只是無法弄清楚。預先感謝任何幫助!編輯2:我還應該提及,我可以成功地打印整個湯,並從視覺上找到我需要的部分,但無論出於何種原因,解析都不會按照它應該的方式工作。

回答

2

嘗試查看使用curl或wget返回的內容。你在瀏覽器中看到的是在javascripts執行完畢後呈現的內容。

wget的https://www.facebook.com/100004210542493

您可能需要使用memchanize或硒,因爲要模擬客戶端瀏覽器(而不是處理原始內容)。

與此相關的另一個問題可能是Beautiful Soup cannot find a CSS class if the object has other classes, too

+0

嘿感謝您抽出寶貴時間來幫助我。我很抱歉,我還在學習,我不確定我是否理解你的意思。我如何去掉評論標籤?搜索引導我在這裏: http://stackoverflow.com/questions/3507283/how-can-i-strip-comment-tags-from-html-using-beautifulsoup 但我似乎無法弄清楚。 – cscanlin

+0

不,我已更新回答。查看原始內容而不是使用瀏覽器。或做 - 響應= urllib2.urlopen('https://www.facebook.com/100004210542493'),然後-response.read()查看內容 – surajz

+0

好吧,所以當我運行時,我得到以下回應: < addinfourl在54123144L其fp = >我真的沒有做足夠的這個來知道它是否現在甚至讀取URL或錯誤。 – cscanlin