Cla*_*diu 2 javascript python forms mechanize
我正在连接需要使用机械化登录的页面.它在首页上使用了一些javascript,使得机械化直接更难.我知道我必须提交什么形式才能登录 - 这个形式总是由js生成,每次都是一样的.如何设置机械化只需提交页面上没有的自定义表单?基本上相当于这个perl问题,但在Python中.
(注意:最近再次出现,我实际上已经开始工作了.)
这似乎有效:
br.open(URL)
res = mechanize._form.ParseString(FORM_HTML, BASE_URL)
br.form = res[1]
#continue as if the form was on the page and selected with .select_form()
br['username'] = 'foo'
br['password'] = 'bar'
br.submit()
Run Code Online (Sandbox Code Playgroud)
URL是访问过的网站的完整网址.BASE_URL是URL所在的目录.FORM_HTML是任何具有form元素的HTML ,例如:
<form method='post' action='/login.aspx'>
<input type='text' name='username'>
<input type='text' name='password'>
<input type='hidden' name='important_js_thing' value='processed_with_python TM'>
</form>
Run Code Online (Sandbox Code Playgroud)
出于某种原因,mechanize._form.ParseString返回两种形式.第一个是GET对没有输入的基本URL 的请求; 第二,正确解析的形式FORM_HTML.