我的问题类似于这里提出的问题: 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加载。通过firebug查看源代码并未显示注释部分的来源。但是通过浏览器的查看源功能明确查看注释的来源。如何提取评论,特别是当评论来自新闻网页中嵌入的不同网址时?
这是我迄今为止所做的,虽然这并不多:
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 :(得分:0)
在iframe
内。检查id="dsq2"
的框架。
现在iframe
有一个src
attr,它是指向actual site的评论的链接。
所以在漂亮的汤中:css_soup.select("#dsq2")
并从src属性中获取url。它会引导您进入只有评论的页面。
获取实际评论,从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