1

この URL をブラウザーに入力すると、スクレイピングしたい有効な XML データが返されます。

http://www.facebook.com/ajax/stream/profile.php?__a=1&profile_id=36343869811&filter=2&max_time=0&try_scroll_load=false&_log_clicktype=Filter%20Stories%20or%20Pagination&ajax_log=0

ただし、サーバー側から実行すると、以前のようには機能しません。現在、このエラーが返されるだけです。これは、デフォルトのエラー メッセージのようです。

{u'silentError': 0, u'errorDescription': u"Something went wrong. We're working on getting it fixed as soon as we can.", u'errorSummary': u'Oops', u'errorIsWarning': False, u'error': 1357010, u'payload': None}

これが問題のコードです。複数のユーザーエージェントを試しましたが、役に立ちませんでした:

import urllib2
user_agent = 'Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'
uaheader = { 'User-Agent' : user_agent }
wallurl='http://www.facebook.com/ajax/stream/profile.php?__a=1&profile_id=36343869811&filter=2&max_time=0&try_scroll_load=false&_log_clicktype=Filter%20Stories%20or%20Pagination&ajax_log=0'

req = urllib2.Request(wallurl, headers=uaheader)
resp  = urllib2.urlopen(req)        
pageData=convertTextToUnicode(resp.read())
print pageData #and get that error

ユーザー エージェントと IP アドレスを除いて、サーバー呼び出しと自分のブラウザーの違いは何ですか?

4

1 に答える 1

2

上記のURLをchromeとfirefoxの両方で試しました。Chrome では動作しますが、Firefox では失敗します。Chrome では facebook にサインインしていますが、Firefox ではそうではありません。

これがこの不一致の理由である可能性があります。投稿した urllib2 ベースのスクリプトで認証を提供する必要があります。

urllib2 での認証に関する既存の質問があります。

于 2010-08-30T17:12:19.223 に答える