2017-08-09 4 views
1

ログイン権限(私が所有している)の背後にあるページをスクラップするためにウェブサイトにログインする際に問題があります。 Requestsモジュール(csrfトークンや隠しタグを含む)やBrowserCookieモジュールを使用してブラウザログインセッションからCookieを使用しようとするなど、いくつかの修正を試みました。しかし、何も動作していないようです。以下の例では、単純なリクエストセッションを使用しました。サイトは200のコードを返します。これはログインが成功したと考えられますが、ページはログインページにリダイレクトされます。私が行方不明になっているものが他にありますか、またはウェブサイトがウェブスクレイパーのログインをブロックする可能性はありますか?セッションのヘッダが働くかもしれ設定しPythonリクエストのログインにクッキーがあってもログインに失敗する

import requests 
 
from bs4 import BeautifulSoup as bs 
 

 
payload = { 
 
    "UserName":"<user>", 
 
    "Password":"<pass>" 
 
} 
 

 

 
s = requests.Session() 
 
r1=s.post("http://<webpage>/login", data=payload) 
 

 

 

 
if r1.status_code == 200: 
 
    print("logged in") 
 
    r2=s.get("<url behind login permissions") 
 
    soup=bs(r2.content,'lxml') 
 
    print(soup.title.string) #Redirects to login page

+0

通常あなたが最初のURLに ''取得()を行う必要があり、 'post()'を呼び出す前に、サイトにすべてのクッキーを設定する機会を与えてください。また、 'post()'呼び出しでは、200の代わりに302などのリダイレクトコードが返されることがあります。 –

+0

あなたの答えをありがとう!最初に 'get()'を使用すると、サイトは403エラー(アクセス拒否)を返します。これはヘッダーを使用して解決できる問題、他のCookieを使用する問題、またはこの特定のサイトがスクリプト要求をブロックすることを示していますか? – krs156

答えて

0

、ここUser-AgentContent-Typeを変更する例を示します

s.headers = { 
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.63 Safari/537.36', 
    'Content-Type':'application/json;charset=UTF-8', 
} 
関連する問題