Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t使用python中的无头浏览器提交表格/登录Nike.com_Python_Html_Forms_Browser_Urllib2 - Fatal编程技术网

Can';t使用python中的无头浏览器提交表格/登录Nike.com

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.

我目前正在尝试使用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
如果我尝试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的可编程浏览器。只要尝试发送一个请求,就好像您没有实际导航页面就填写了表单一样。