Can';t使用python中的无头浏览器提交表格/登录Nike.com
我目前正在尝试使用python中的无头浏览器进行QA/表单提交,我认为我的库无法提交/完成表单。我做错了什么Can';t使用python中的无头浏览器提交表格/登录Nike.com,python,html,forms,browser,urllib2,Python,Html,Forms,Browser,Urllib2,我目前正在尝试使用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.
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
如果我尝试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);'
回溯(最近一次呼叫最后一次):
文件“/Users/cmw/PycharmProjects/Nike_Bot/Nike_Bot_py.py”,第44行,在
浏览器。提交表单(登录表单)
文件“/Library/Python/2.7/site packages/robobrowser/browser.py”,第341行,提交形式
response=self.session.request(方法,url,**payload.to_请求(方法))
文件“/Library/Python/2.7/site packages/requests/sessions.py”,第456行,在request中
resp=自我发送(准备,**发送)
文件“/Library/Python/2.7/site packages/requests/sessions.py”,第553行,在send中
adapter=self.get\u适配器(url=request.url)
文件“/Library/Python/2.7/site packages/requests/sessions.py”,第608行,在get_适配器中
raise InvalidSchema(“未找到“%s”的连接适配器%url)
requests.exceptions.InvalidSchema:未找到“javascript:void(0);”的连接适配器
您试图访问的网站运行javascript提交表单:action=“javascript:void(0);”
。您的mechanize
库试图模仿它,但实际上无法理解javascript,因此失败了。如果你只是用帖子提交表单的内容,那么这可能会起作用,除非他们使用请求验证,在这种情况下,你就不走运了。所以我猜我需要使用无头浏览器提交这些表单,就像我在点击它们一样?我不知道有任何运行javascript的可编程浏览器。只要尝试发送一个请求,就好像您没有实际导航页面就填写了表单一样。