2016-05-03 8 views
1

私は、urllib2を使ってPythonを使ってポータルにログインし、 'BeautifulSoup'を使って解析する方法について、多くのガイドラインに従ってきました。Pythonを使ってWebポータルにログイン

私はそのログインフォームの方法はthere

を入れ子にしているこのwebportalにログインしようとしている私は、タグからのソースで見て、この

<form id="signinForm" action="/accounts/signin.ac" name="signinform" method="post" novalidate="true" autocomplete="off"> 

が見つかりましたが、リンク https://academia.srmuniv.ac.in/accounts/signin.acが無効です。

誰かが私に助けてくれますか?

EDIT

コードを使用:

from bs4 import BeautifulSoup import urllib2 import requests 
payload = {'username': 'some_username', 'password': 'some_password'} 
r = requests.get("academia.srmuniv.ac.in/accounts/signin.ac";, params=payload) 
data = r.text soup = BeautifulSoup(data) print soup.prettify() 
+0

これはポストメソッドでアクセスする必要があるため、そのようなリンクには移動できません。あなたは何をしたいのですか? – Whitefret

+0

おそらく、この機能を実行する必要があります: 'submitSigninForm()'は、そのデータを( 'httplib'を使って、おそらく)POSTしています。 [ページのソース](https://academia.srmuniv.ac.in/accounts/signin?_sh=false&hideidp=true&portal=10002227248&client_portal=true&servicename=ZohoCreator&serviceurl=https://academia.srmuniv)を読んでいるだけです。 .ac.in /) –

+0

私はポストリクエストをしても無効なページを返す@Whitefretと私はポータルにログインした後にデータを掻きたい –

答えて

0

としてはコメントで言った、あなたはGETPOST要求の違いを理解する必要があります。

Getは、パラメータがURLによって渡される基本的なhttpリクエストです。サイズとセキュリティは非常に限られています。 Postは、パラメータがリクエストの本文にある場合です。あなたのケースでは

は、あなたはPOSTリクエストを必要とするので、あなたはまた、あなたはログインが解消されないようにセッションを使用する必要がrequests.post("academia.srmuniv.ac.in/accounts/signin.ac";, params=payload)

を使用する必要があります。ここで

はそれを行うための小さなコードです:

s = requests.Session() 
r = s.post('your address', payload) 

最後に、パラメータについて、あなたは(inputタグのidを見て)メールアドレスとパスワードを渡す必要があり、かつアドレスはする相対的iframに、私は与えるために正しいアドレスが何であるかわからないよ...

だから、それはあなたに与えられるべきである。

import requests 
from bs4 import BeautifulSoup 

s = requests.Session() 
payload = {'Email' : youremail, 'Password' : yourpwd} 
r = s.post('https://academia.srmuniv.ac.in/accounts/signin.ac', payload) 
data = r.text() 
soup = BeautifulSoup(data) 
print soup.pretify() 

そして今のウェブサイトの任意のページにアクセスするには、ただ必要があるあなたのセッションを使用して取得または投稿してください:

r2 = s.get('some other page behind the login page') 
r3 = s.post('some other page with a post method', payload) 
+0

それはdidntの( R = s.post仕事、それはBS4インポートBeautifulSoup S = requests.Session() ペイロード= { '何か': '何か'、 'パスワード' 'メール'}から何も インポート要求 を返しません'https://academia.srmuniv.ac.in/accounts/signin.ac'、ペイロード) data = s.get( 'https://academia.srmuniv.ac.in/#View:My_Attendance') スープ= BeautifulSoup(data.text) print soup.prettify() –

+0

@RohanLokeshSharmaあなたはr.textを印刷しようとしますか? – Whitefret

+0

それは何も印刷しません(空白) –

関連する問題