我目前正在尝试使用python无头浏览器进行一些质量检查/表单提交,但我认为我的库无法提交/完成表单。我在这里做错了什么?
import mechanize
import cookielib
cj = cookielib.LWPCookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj)
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
response1 = br.open("http://www.nike.com/us/en_us/")
assert br.viewing_html()
print br.title()
print response1.geturl()
html = response1.read()
for forms in br.forms():
print forms
# Select the second (index one) form
br.select_form('login-form')
# User credentials
br.form['email'] = '[email protected]'
br.form['password'] = 'test-password'
br.submit
如果我尝试robobrowser,这是我的错误:
Traceback (most recent call last):
File "/Users/cmw/PycharmProjects/Nike_Bot/nike_bot_py.py", line 44, in <module>
browser.submit_form(signin_form)
File "/Library/Python/2.7/site-packages/robobrowser/browser.py", line 341, in submit_form
response = self.session.request(method, url, **payload.to_requests(method))
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 456, in request
resp = self.send(prep, **send_kwargs)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 553, in send
adapter = self.get_adapter(url=request.url)
File "/Library/Python/2.7/site-packages/requests/sessions.py", line 608, in get_adapter
raise InvalidSchema("No connection adapters were found for '%s'" % url)
requests.exceptions.InvalidSchema: No connection adapters were found for 'javascript:void(0);'
您尝试访问的网站运行javascript提交表单:action="javascript:void(0);"
。您的mechanize
库正在尝试模仿它,而实际上却无法理解javascript并失败。如果您仅使用POST提交表单内容,那么除非他们使用请求身份验证,否则这种方法可能会起作用,在这种情况下,您很不走运。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句