ホームページ >バックエンド開発 >Python チュートリアル >Pythonシミュレーションフォーム送信ログインライブラリ

Pythonシミュレーションフォーム送信ログインライブラリ

不言
不言オリジナル
2018-04-27 11:16:433067ブラウズ

この記事では主に Python シミュレーション フォーム送信ログイン ライブラリの実装方法を詳しく紹介します。興味のある方は参考にしてください。この記事のサンプルは Python シミュレーション ログイン ライブラリです。ご参考までに、具体的な内容は次のとおりです


シミュレートされたフォーム送信の原理:

HTTP はステートレスであることは誰もが知っているため、送信するデータがブラウザーでの通常の送信と同じである場合、サーバーはブラウザでも同じ応答が返されます。そこで、ここでは、広東理工大学の図書館にログインするためのブラウザー フォームの送信をシミュレートします

http://222.200.122.171:7771/login.aspx

Cookie を取得し、次に他のページにアクセスします。図書館の Web サイト この Cookie を使用すると、サーバーは私がログインしているユーザーであると認識し、通常どおりデータを私に返します。 まず、ブラウザを使用してページのソース コードを表示し、送信するフォームを見つけます。

次に、hidden もフォームの検索とともに送信されるため、hidden を含むフォームの入力を取得する必要があります。対応するアカウントとパスワード このとき、送信するフォームの内容をすべて取得したら、アカウント番号とパスワードを自分のアカウントで入力する必要があります。リクエストを送信して Cookie を取得し、Cookie の中央に保存します。

コードは次のとおりです(Python 2.7バージョンとPython 3は実際には似ています):

# -*- coding:utf-8 -*- 
import urllib 
import urllib2 
import cookielib 
import bs4 
 
result = urllib2.urlopen("http://222.200.122.171:7771/login.aspx") 
soup = bs4.BeautifulSoup(result, "html.parser") 
 
loginp = soup.find("form", attrs={"name": "aspnetForm"}) 
Allinput = loginp.findAll("input") 
inputData = {} 
for oneinput in Allinput: 
 if oneinput.has_attr('name'): 
  if oneinput.has_attr('value'): 
   inputData[oneinput['name']] = oneinput['value'] 
  else: 
   inputData[oneinput['name']] = "" 
inputData['ctl00$ContentPlaceHolder1$txtPas_Lib'] = '*****' 
inputData['ctl00$ContentPlaceHolder1$txtUsername_Lib'] = '*******' 
 
filename = 'cookie.txt' 
# 声明一个MozillaCookieJar对象实例来保存cookie,之后写入文件 
cookie = cookielib.MozillaCookieJar(filename) 
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie)) 
postdata = urllib.urlencode(inputData) 
result2 = opener.open("http://222.200.122.171:7771/login.aspx", postdata) 
cookie.save(ignore_discard=True, ignore_expires=True) 
#登录后 要访问的url 
bookUrl = "http://222.200.122.171:7771/user/userinfo.aspx" 
result=opener.open(bookUrl) 
print result.read()

関連推奨事項:

Pythonは図書館自習室の自動予約機能を実装します

Pythonリクエストはシミュレートされますログインして図書館を実装 自動座席予約

以上がPythonシミュレーションフォーム送信ログインライブラリの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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