2017-12-02 5 views
1

私はデータを取得しようとしていますが、私は2ページに渡る必要があるデータを取得しようとしています:ログイン画面とデータを選択する2番目の画面読む。 私のコードは次のようになります。複数のPOSTリクエストを行うurllib

import urllib 
    from bs4 import BeautifulSoup 

    url = 'http://website.com' 
    values = {'userName' : 'tom', 
       'Login' : 'submit'} 
    data = urllib.parse.urlencode(values).encode('ascii') 
    req = urllib.request.Request(url, data) 
    page = urllib.request.urlopen(req) 
    soup = BeautifulSoup(page,'html.parser') 
    print(soup.text) 

私の質問は、私が探しているイムのデータを取得するためにはログイン要求後に第2のPOSTリクエストを提出する方法ですか?

+0

多くのウェブサイトでは、Cookieベースのセッションが使用されていました。おそらく['requests.session'](http://docs.python-requests.org/ja/master/user/advanced/)を使用して、次の呼び出しのログイン後にクッキーを保持することができます。 – Randyr

+0

私が使用していたサイトでは、2番目のページの入力データを、ログインページの入力と一緒に値辞書に入れることができます。 –

答えて

0

通常、ユーザーの認証方法、セッション、php、トークンベース、Google認証の保存方法によって異なります。この情報のすべてを知ることなく、知るのは難しいです。この膨張を回避する一般的な方法は、ヘッドレスWebブラウザを使用することです。コードで制御できるブラウザ。あなたは通常通りにページをクリックすることができます!

私はpythonのためにseleniumhqをお勧めします! http://www.seleniumhq.org/

関連する問題