3

以下のウェブサイトのページで、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 を初めて使用するので、このアプローチが正しいのか、どこが間違っているのか疑問に思っていました)。

4

3 に答える 3

1

Christopher と Thiefmaster のように: すべては JavaScript のせいです。

ただし、その情報が本当に必要な場合は、http: //seleniumhq.org の Selenium のおかげで取得でき、この出力で beautifulsoup を使用できます。

于 2013-01-19T18:52:52.127 に答える
0

Facebook のコメントは、AJAX を使用して動的に読み込まれます。元のページをスクレイピングしてこれを取得できます。

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

その後、そのタグの URL に対するコメントを提供する Facebook API にリクエストを送信する必要があります。

于 2013-01-19T13:45:20.860 に答える
0

お探しのページの部分がソース ファイルに含まれていません。ブラウザーを使用して、ページのソースを開くと、これを自分で確認できます。

ドキュメントを BeautifulSoup に渡す前に、pywebkitgtkなどを使用して JavaScript を実行する必要があります。

于 2013-01-19T13:46:00.083 に答える