1

Python を使用して Web サイトにログインしようとしています。
次のコードがあり、Web サイトにログインすると実際に機能します。

import ClientCookie, ClientForm
import urllib, urllib2, cookielib
from BeautifulSoup import BeautifulSoup  

cookies = ClientCookie.MozillaCookieJar()

fp = ClientCookie.urlopen("http://www.renrendai.com/loginPage.action?error=false")

forms = ClientForm.ParseResponse(fp)  
fp.close()  
form = forms[0]  
form["j_username"]  = "userid"   
form["j_password"] = "password"  
fp = ClientCookie.urlopen(form.click())  
fp.close()


userHomePage_href = "http://www.renrendai.com/lend/userHomePage.action?userId=114590"  
userHomePage_doc = ClientCookie.urlopen(userHomePage_href)  
userHomePage_soup = BeautifulSoup(userHomePage_doc,fromEncoding="gb18030")  

しかし、それを使用して別の Web サイトにログインすると、機能しません。
私はサイトからこのソースを持っています:

<input name="txtUserName" type="text" value="tinkei" id="txtUserName" class="lsls" onfocus="changeborder(this)" onblur="changeborder2(this)" style="height:26px;width:280px;border-width:1px; border-color:LightGray;" />
<input name="txtPassword" type="password" maxlength="50" id="txtPassword" onfocus="changeborder(this)" onblur="changeborder2(this)" style="height:26px;width:280px;border-width:1px; border-color:LightGray;" />
<input type="image" name="btnLogin" id="btnLogin" src="http://static.ppdai.com/skin/images/login_n_button.gif" alt="登录" style="border-width:0px;" />&nbsp;

「btnLogin」の値のせいですか?

4

2 に答える 2

0

こんにちは、私は似たような問題を抱えているかもしれませんが、サイトが異なります。これを見た:

Python (urllib,urllib2,cookielib) を使用して Web サイトにログインする: 送信に必要な情報を見つけるにはどうすればよいですか?

ブラウザの開発ツールで送信されるデータを確認してください。それが aspx であるか >not であるか、または少なくともすべきではないかどうかは問題ではありません。あなたに関する限り、これは単なる http サービスです。ヘッダーも偽造してください。一部の Web サイトではそれらをチェックしています (ユーザー エージェント、リファラーなど)。>request モジュールの使用もお勧めします。– gatto 4 月 8 日 19:41

ヘッドアップをありがとう。ヘッダーの偽造についてさらに詳しく見ていきます。>残りの入力値に関して、何か不足していますか? – アレテ 4 月 8 日 19:43 1

1 つには、フォームを解析して (lxml を使用して) 値を取得する必要があります。これは、動的である可能性が最も高いため、ハードコードされた値は機能しません。そして念のため、>空の非表示の入力も含めて、すべてを保持します。さて、プロセスはページのロードです - >フォームを解析して取得します - Cookieとヘッダーを含むフォームデータを投稿します。– gatto 4 月 8 日 19:52

http://www.ppdai.com/login.aspxの場合

私は彼らがこの部分を意味すると思います

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/     wEPDwUKMTM0MDY0ODA1OQ9kFgICAQ8WAh4EVGV4dAXuATxzY3JpcHQgc3JjPSJodHRwOi8vd3d3Lmdvb2dsZS1hbmFseXRpY3MuY29tL2dhLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij50cnkge3ZhciBwdCA9IF9nYXQuX2dldFRyYWNrZXIoIlVBLTM2MzU2NjQtMSIpO3B0Ll9zZXREb21haW5OYW1lKCcucHBkYWkuY29tJyk7cHQuX3RyYWNrUGFnZXZpZXcoKTt9IGNhdGNoKGVycikge308L3NjcmlwdD5kGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQhidG5Mb2dpbkPZsS5trJ5Fyz2xtZdq47OvRkst" />
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="/wEWBQKRr4PqCgKl1bKzCQK1qbSRCwKC3IeGDAKQo8KrDbSMQeI06gCgwhXGUNBJw4I0qMjg" />

問題を把握して解決できることを願っています。

于 2013-04-22T03:18:34.843 に答える