APIを持たない特定のサービスを回避しようとして、Mechanizeを試してみることにしました(通常はurllibを使用します)。
open
1回の呼び出しに特定のヘッダーを追加するにはどうすればよいですか?
または、独自のヘッダーを使用してRequestインスタンスを作成し、mechanize.Browser
インスタンスに処理させる方法はありますか?
browser = mechanize.Browser()
headers = [
('Accept', 'text/javascript, text/html, application/xml, text/xml, */*'),
('Content-type', 'application/x-www-form-urlencoded; charset=UTF-8'),
('User-Agent', 'Foobar'),
]
browser.addheaders = headers
# log in, do stuff, etc.
# here, for this one browser request, I need to add an AJAX header
browser.open('/a_url_to_ajax_post/', urllib.urlencode({'foo': 'bar'}))
私の回避策は、addheadersリストを一時的に変更することですが、それは醜いです!
browser.addheaders.append(AJAX_HEADER)
browser.open('/admin/discounts', urllib.urlencode(pulled_params))
browser.addheaders.pop()