2013-09-25 95 views
0

我的問題與此處詢問的問題類似: https://stackoverflow.com/questions/14599485/news-website-comment-analysis 我試圖從任何新聞文章中提取評論。例如。我在這裏有一個新聞網址: http://www.cnn.com/2013/09/24/politics/un-obama-foreign-policy/ 我想在Python中使用BeautifulSoup來提取評論。然而,它似乎是評論部分嵌入在iframe中或通過JavaScript加載。通過螢火蟲查看源代碼不會顯示評論部分的來源。但是,通過瀏覽器的視圖源功能顯式查看評論的來源確實如此。如何去提取評論,尤其是當評論來自新聞網頁中嵌入的不同網址時?從新聞文章中提取評論

這是我做了什麼到現在,雖然這不是什麼大:

import urllib2 
    from bs4 import BeautifulSoup 

    opener = urllib2.build_opener() 


    url = ('http://www.cnn.com/2013/08/28/health/stem-cell-brain/index.html') 


urlContent = opener.open(url).read() 
soup = BeautifulSoup(urlContent) 
title = soup.title.text 

print title 
body = soup.findAll('body') 
outfile = open("brain.txt","w+") 
for i in body: 
    i=i.text.encode('ascii','ignore') 
    outfile.write(i +'\n') 

什麼我需要做什麼或如何去將不勝感激任何幫助。

+0

你需要嘗試像硒過於模仿瀏覽器的JavaScript功能。 –

+0

@SnakesandCoffee你並不需要特定情況下的js。它只是一個可以下載整個頁面的iframe。 –

回答

0

其內部iframe。檢查與id="dsq2"框架。

現在iframe有一個src attr這是一個鏈接到actual site有評論。

所以在美麗的湯:css_soup.select("#dsq2")並從src屬性中獲取網址。它會引導你到一個只有評論的頁面。

獲得實際的意見,你從SRC獲得頁面後,您可以使用此CSS選擇器:.post-message p

,如果要加載更多的評論,當你點擊它似乎是更多的評論按鈕發送此:

http://disqus.com/api/3.0/threads/listPostsThreaded?limit=50&thread=1660715220&forum=cnn&order=popular&cursor=2%3A0%3A0&api_key=E8Uh5l5fHZ6gD8U3KycjAIAk46f68Zw7C6eW8WSjZvCLXebZ7p0r1yrYDrLilk2F