2 2

ホームページ  >  記事  >  バックエンド開発  >  Request ライブラリを使用して Python でログインをシミュレートするチュートリアルの例

Request ライブラリを使用して Python でログインをシミュレートするチュートリアルの例

PHP中文网
PHP中文网オリジナル
2017-06-20 13:54:082208ブラウズ

このような単純な (そして安全ではない) ログイン フォームは、もうほとんど見られません。字幕ライブラリのログイン フォームは次のとおりですが、無関係なコンテンツは省略されています:

1 <form class="login-form" action="/User/login.html" method="post">2     <input type="hidden" name="referer" value="www.zimuku.net/">3     <input type="text" id="inputEmail" datatype="*1-16" value="" name="username">4     <input type="password" id="inputPassword" datatype="*6-20" name="password">5     <input type="checkbox" name="isremember" value="1" checked="">6     <button type="submit" class="btn submit-btn">登 陆</button>7 </form>

パケット キャプチャ分析により、ユーザー名とパスワードが暗号化されていないことがわかります:

POST を直接使用してログインをシミュレートする:

 1 import requests 2 from bs4 import BeautifulSoup 3  4 url='' 5 data={'referer':'','username':'***','password':'***','isremember':'1'} 6  7 #创建会话 8 session=requests.session() 9 #模拟登录10 r=session.post(url,data=data)11 #解析页面12 bs=BeautifulSoup(r.text,'lxml')13 14 print(bs.body.text) #登录成功!页面自动 跳转 等待时间: 1

ログインに成功し、返されたページの JS コードを分析した結果、次のことがわかりました:

href = document.getElementById('href').href;
location.href = href;

ジャンプしたいページは、ID href:

<a id="href" href="/User/index.html">跳转</a>

のハイパーリンク内にあります。ジャンプしたいページを指定し、新しいページを開こうとしたときにログイン状態が維持できるかどうか:

1 href=''+bs.find(id='href').attrs['href']2 r2=ss.get(href)3 print(BeautifulSoup(r2.text,'lxml').title.text)#首页 - 用户中心 - 字幕库(zimuku.net)

「ホームページ - ユーザーセンター」という文字が表示され、ログイン状態が維持されました。

以上がRequest ライブラリを使用して Python でログインをシミュレートするチュートリアルの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。