2012-02-10 15 views
1

このスクリプトは、200応答オブジェクトを取得し、クッキーを取得し、redditの株式のホームページソースを返すことに成功します。しかし、ログイン後にしかアクセスできない "最近のアクティビティ"サブページのソースを取得することになっています。これにより、ログインに失敗したと思われますが、ユーザー名とパスワードは正確です。Pythonスクリプトが間違ったページソースをスクラップしています。私はそれが正しくログインするのに失敗していると思いますか?

#!/usr/bin/python 
import requests 
import urllib2 

auth = ('username', 'password') 
with requests.session(auth=auth) as s: 
    c = s.get('http://www.reddit.com') 
    cookies = c.cookies 
    for k, v in cookies.items(): 
      opener = urllib2.build_opener() 
      opener.addheaders.append(('cookie', '{}={}'.format(k, v))) 
      f = opener.open('http://www.reddit.com/account-activity') 
      print f.read() 

答えて

0

あなたがRedditには、そのWebサイトにログインするために使用するものではありません標準の「HTTP基本」認証を、使用しているように見えます。 (ほとんどのWebサイトでは、HTTP Basic(認証を要求するモーダルダイアログボックスをポップアップしますが、独自のユーザー名/パスワードフォームを実装しています)を使用していません。

ホームページを取得し、ログインフォームのフィールドを読んで、ユーザー名とパスワードを入力し、応答をWebサイトにPOSTして、結果のCookieを取得してから、そのCookieを将来の要求。他にもたくさんの詳細がありますが、実験する必要があります。

+0

大変ありがとうございます。私はhttps://github.com/reddit/reddit/wiki/API%3A-loginをチェックしています。 – FlyingTriangle

+0

ああ、もし正式なAPIがあれば、これはもっと良い選択だ。 –

-1

私はおそらく同じ問題を抱えていると思います。ステータスコード200 OK。しかし、スクリプトは私をログインさせたことはありません。私はいくつかの提案と助けを得ています。うまくいけば、あなたも私にあなたのために働くことを知らせてくれるでしょう。 redditも同じシステムを使用しているようだ。

私の問題が議論されているこのページをチェックしてください。 Authentication issue using requests on aspx site

関連する問題