私は自分の国で一種のクライアント ブログ プラットフォームを構築しようとしていますが、ブログ プラットフォームには社内で構築されたキャプチャ生成機能があります。
問題は、CAPTCHA がそのように構築されているため、GET 要求があるたびに新しい画像が生成されることです。したがって、キャプチャ画像の URL が次のようになっているとします: http://example.com/randomcaptcha.aspx?someparams-that-are-always-the-same
上記のリンクを Firefox で開いて更新 (JPG 画像のみを表示) を押しても、更新するたびに異なる画像が表示されます。
問題が発生するのは、mechanize が Web ページ全体をダウンロードするときに、その要求中に画像もダウンロードする (または、randomcaptcha.aspx リンクをたどる) ためです。そのため、画像を再度ダウンロードしようとすると、別の GET リクエストを発行して画像を取得してダウンロードする必要がありますが、この時点で画像が変更されています。
どうすればこの問題を解決できますか?
ありがとうございました。
現在のコードを編集すると、次のようになります。
browser.open("http://www.example.com/registration.aspx") #this contains the randomcaptcha.aspx url in img src
#then we have a regex to find the url of the image, say the variable is url
with open("captcha.jpg", "wb") as file:
file.write(browser.open_novisit(url).read())
この時点で、ダウンロードされた captcha.jpg ファイルは、登録ページに表示されているものとは既に異なります。私はそれを確認するために Fiddler というソフトウェアを使用しました。URL に対して 2 つの GET 要求が発行されていることは間違いありませんrandomcaptcha.aspx
。
編集#2解決済み:私の悪い。キャプチャ URL が正しくありませんでした。