この記事では主に 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 サイトの他の関連記事を参照してください。