Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从新闻文章中提取评论_Python_Comments_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 从新闻文章中提取评论

Python 从新闻文章中提取评论,python,comments,web-scraping,beautifulsoup,Python,Comments,Web Scraping,Beautifulsoup,我的问题与这里的问题类似: 我试图从任何新闻文章中摘录评论。例如,我在这里有一个新闻url: 我试图在python中使用BeautifulSoup来提取注释。然而,注释部分似乎要么嵌入在iframe中,要么通过javascript加载。通过firebug查看源代码不会显示注释部分的源代码。但通过浏览器的“查看源代码”功能显式查看注释的源代码确实如此。如何提取评论,尤其是当评论来自嵌入在新闻网页中的不同url时 这就是我到目前为止所做的,尽管这并不多: import urllib2

我的问题与这里的问题类似: 我试图从任何新闻文章中摘录评论。例如,我在这里有一个新闻url: 我试图在python中使用BeautifulSoup来提取注释。然而,注释部分似乎要么嵌入在iframe中,要么通过javascript加载。通过firebug查看源代码不会显示注释部分的源代码。但通过浏览器的“查看源代码”功能显式查看注释的源代码确实如此。如何提取评论,尤其是当评论来自嵌入在新闻网页中的不同url时

这就是我到目前为止所做的,尽管这并不多:

    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')
对于我需要做什么或如何去做的任何帮助,我都将不胜感激。

这是在一个iframe中。检查id为dsq2的帧

现在iframe有一个src attr,它是到包含注释的的的链接

因此,在BeautifulSoup中:css_soup.selectdsq2并从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

您还需要尝试类似Selenium的东西来模拟浏览器的javascript功能。@SnakesandCoffee您不需要js来实现特定的功能案例这只是一个iframe,你可以下载整个页面。