我一直在尝试使用以下网站页面上的Beautiful Soup来抓取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很新,并且想知道这种方法是否正确以及我哪里出错了?)
答案 0 :(得分:1)
像Christopher和Thiefmaster一样:这完全是因为javascript。
但是,如果您真的需要这些信息,您仍然可以通过http://seleniumhq.org上的Selenium检索它,然后在此输出中使用beautifulsoup。
答案 1 :(得分:0)
使用AJAX动态加载Facebook评论。您可以抓取原始页面以检索此内容:
<fb:comments href="http://techcrunch.com/2012/05/15/facebook-lightbox/" num_posts="25" width="630"></fb:comments>
之后,您需要向某个Facebook API发送请求,该API将为您提供该标记中URL的注释。
答案 2 :(得分:0)
您要查找的页面部分未包含在源文件中。使用浏览器,您可以通过打开页面源来自行查看。
在将文档传递给BeautifulSoup之前,您需要使用类似pywebkitgtk的内容来执行javascript