我目前正在尝试使用python中的无头浏览器提交一些QA/表单,我认为我的库无法提交/完成表单。我在这里做错什么了?
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'] = 'example@email.com'
br.form['password'] = 'test-password'
br.submit如果我尝试机器人浏览器,这就是我的错误:
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);'发布于 2014-07-27 20:44:28
您要访问的网站运行javascript来提交表单:action="javascript:void(0);"。您的mechanize库试图模仿它,但实际上无法理解javascript,并且失败了。如果您只是通过POST提交表单的内容,那么除非他们使用的是请求身份验证,否则这可能会有效,在这种情况下,您就倒霉了。
https://stackoverflow.com/questions/24985356
复制相似问题