Python从网站上抓取fb评论

Python从网站上抓取fb评论,python,beautifulsoup,Python,Beautifulsoup,我一直在尝试在下面的网站页面上使用BeautifulSoup来收集facebook的评论 import BeautifulSoup import urllib2 import re url = 'http://techcrunch.com/2012/05/15/facebook-lightbox/' fd = urllib2.urlopen(url) soup = BeautifulSoup.BeautifulSoup(fd) fb_comment = soup("div", {"cla

我一直在尝试在下面的网站页面上使用BeautifulSoup来收集facebook的评论

import BeautifulSoup
import urllib2
import re

url = 'http://techcrunch.com/2012/05/15/facebook-lightbox/'

fd = urllib2.urlopen(url)

soup = BeautifulSoup.BeautifulSoup(fd)

fb_comment = soup("div", {"class":"postText"}).find(text=True)

print fb_comment

输出为空集。但是,我可以清楚地看到facebook评论在techcrunch站点的inspect元素中的上述标记中(我对Python不太熟悉,我想知道这种方法是否正确,我哪里出了问题?

facebook评论是使用AJAX动态加载的。您可以刮取原始页面以检索以下内容:

<fb:comments href="http://techcrunch.com/2012/05/15/facebook-lightbox/" num_posts="25" width="630"></fb:comments>


之后,您需要向某个Facebook API发送请求,该API将为您提供该标记中URL的注释。

您要查找的页面部分不包含在源文件中。使用浏览器,您可以通过打开页面源代码亲自查看


在将文档传递给BeautifulSoup之前,您需要使用类似的东西来执行javascript,比如Christopher和Thiefmaster:这都是因为javascript


但是,如果您真的需要这些信息,您仍然可以在上使用Selenium来检索这些信息,然后在此输出上使用beautifulsoup。

这些元素很可能是由JavaScript生成的,不在HTML中。我同意Blender。如果不运行JavaScript,您将无法看到它们。另外,你还需要在
fd
上打电话阅读。谢谢Blender和Justin Peel。这听起来像是太过分了。他可以访问Facebook JavaScript通常访问的任何API。无需运行任何JavaScript。感谢关于Selenium的提示,我正在使用Selenium并尝试将Selenium的输出作为BeautifulSoup的输入。感谢各位,我只想说我使用了以下API(无需运行任何JavaScript,因为facebook有一个非常友好的API,可以直接获取消息)。这会直接返回ID、消息和时间戳。请考虑将其作为答案,然后接受它。既然你用Python标记了这个问题,考虑共享一些代码以防它有用。