1. ホーム
  2. python

[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?

2022-07-17 15:23:21

質問

私はPythonのRequestsモジュールを使用してウェブサイトにログインするための要求を投稿しようとしていますが、実際には動作していません。私はこれに新しいです...ので、私は私のユーザー名とパスワードをクッキーにするべきか、または私が見つけたHTTP認証のもののいくつかのタイプを理解することはできません(?)

from pyquery import PyQuery
import requests

url = 'http://www.locationary.com/home/index2.jsp'

ということは、今度は"post"とCookieを使えばいいんですね...。

ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}

r = requests.post(url, cookies=ck)

content = r.text

q = PyQuery(content)

title = q("title").text()

print title

クッキーのやり方が間違っているような気がするのですが...どうなんでしょう。

正しくログインできていない場合、ホームページのタイトルが "Locationary.com"と出るはずです。

もし、あなたがリクエストとクッキーについて少し説明してくれて、これを助けてくれるなら、私は非常に感謝します :D

ありがとうございます。

...まだ、本当にうまくいきませんでした。なるほど...ログイン前のトップページのHTMLはこうなっているんですね。

</td><td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_email.gif">    </td>
<td><input class="Data_Entry_Field_Login" type="text" name="inUserName" id="inUserName"  size="25"></td>
<td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_password.gif"> </td>
<td><input  class="Data_Entry_Field_Login"  type="password" name="inUserPass"     id="inUserPass"></td>

というわけで、ちゃんとやっているつもりなのですが、出力はまだ "Locationary.com" のままです。

2回目のEDITです。

長時間ログインしたまま、そのドメインでページをリクエストすると、いつでもログインしているようにコンテンツが表示されるようにしたいです。

どのように解決するのですか?

ログイン直後に表示されるページに欲しい情報がある場合

あなたの ck 変数を呼び出します。 payload のように、代わりに python-requests docs のようにします。

payload = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}
url = 'http://www.locationary.com/home/index2.jsp'
requests.post(url, data=payload)

それ以外の場合...

参照 https://stackoverflow.com/a/17633072/111362 を参照してください。