提取新闻文章评论(Extracting comments from news articles)

2019-10-18 17:01发布

我的问题是一个类似于这里问: https://stackoverflow.com/questions/14599485/news-website-comment-analysis我试图从任何新闻文章的评论。 例如,我有一个新闻网址在这里: http://www.cnn.com/2013/09/24/politics/un-obama-foreign-policy/我试图使用BeautifulSoup在Python中提取意见。 然而似乎注释部分要么嵌入一个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')

什么我需要做什么或如何去做任何帮助将非常感激。

Answer 1:

其内部iframe 。 检查与一个帧id="dsq2"

现在的iframe有一个src ATTR这是对一个链接现场实际拥有的意见。

因此,在美丽的汤: 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



文章来源: Extracting comments from news articles