43

StubHub APIを使用して販売データをスクレイピングしようとしています。ここに表示されるこのデータの例:

https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata

stubhub.com にログインせずにその URL にアクセスしようとすると、機能しないことに気付くでしょう。最初にログインする必要があります

Web ブラウザーからサインインしたら、スクレイピングしたい URL を新しいタブで開き、次のコマンドを使用してスクレイピングされたデータを取得します。

r = requests.get('https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata')

ただし、ブラウザー セッションが 10 分後に期限切れになると、次のエラーが発生します。

<FormErrors>
<FormField>User Auth Check</FormField>
<ErrorMessage>
Either is not active or the session might have expired. Please login again.
</ErrorMessage>

認証を維持するには、Cookie を介してセッション ID を実装する必要があると思います。

Requests ライブラリのドキュメントは、このようなことをしたことがない人にとってはかなりひどいものです。

リクエストによって提供される例は次のとおりです。

s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")

print r.text
# '{"cookies": {"sessioncookie": "123456789"}}'

正直なところ、その頭も尻尾もわかりません。POST リクエスト間で Cookie を保持するにはどうすればよいですか?

4

1 に答える 1

75

stubhub の API がどのように機能するかはわかりませんが、一般的には次のようになります。

s = requests.Session()
data = {"login":"my_login", "password":"my_password"}
url = "http://example.net/login"
r = s.post(url, data=data)

これで、ログイン フォームによって提供される Cookie がセッションに含まれるようになりました。このセッションの Cookie にアクセスするには、次を使用します。

s.cookies

別のリクエストなどの以降のアクションには、この Cookie が含まれます

于 2013-04-03T18:15:02.297 に答える