Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/345.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
使用Python的Mechanize提交Html表单时出现问题_Python_Mechanize - Fatal编程技术网

使用Python的Mechanize提交Html表单时出现问题

使用Python的Mechanize提交Html表单时出现问题,python,mechanize,Python,Mechanize,我正在尝试使用python登录网站以访问数据。在浏览了web以了解如何尝试这样做之后,我决定使用mechanize模块。我想我已经掌握了代码的基本要点,但是当我提交html表单时,什么也没有发生。代码如下: import sys,os import mechanize, urllib import cookielib from BeautifulSoup import BeautifulSoup,BeautifulStoneSoup,Tag import datetime, time, sock

我正在尝试使用python登录网站以访问数据。在浏览了web以了解如何尝试这样做之后,我决定使用mechanize模块。我想我已经掌握了代码的基本要点,但是当我提交html表单时,什么也没有发生。代码如下:

import sys,os
import mechanize, urllib
import cookielib
from BeautifulSoup import BeautifulSoup,BeautifulStoneSoup,Tag
import datetime, time, socket
import re,sys,os,mechanize,urllib,time,  urllib2


br = mechanize.Browser()
cj = cookielib.LWPCookieJar()
br.set_cookiejar(cj)

# Browser options
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)

# Follows refresh 0 but not hangs on refresh > 0
br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1)

# User-Agent (this is cheating, ok?)
br.addheaders = [('User-agent', 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US;    rv:1.9.0.6')]
br.open('http://ogame.us')

br.select_form(name = 'loginForm' )

br['login'] = 'stackexample'
br['pass'] = 'examplepassword'
br['uni_url'] = ['uni103.ogame.us']

br.submit()

print br.geturl()
来自geturl的响应与我之前所在的url相同。有人知道发生了什么吗?

试试这个:

    data = br.submit()
    html=data.read()

可以直接选择按钮吗

response = br.submit(type="submit", id="loginSubmit")

还有第三个领域的大学,我没有完成。其他一切都是正确的


将来,使用Google Chrome和其他浏览器,您可以通过打开Chrome开发者工具并在网络下查看发送到浏览器的实际请求。这节省了不少时间。

它似乎没有起到作用。当我打印html时,我从登录屏幕得到了html,geturl仍然返回登录url。同样,什么也没有。这段代码在其他网站上也能用,这让我很困惑。你试过在登录名和密码周围加括号吗?br['login']=['stackexample']br['pass']=['examplepassword']也许您还需要模拟按下登录按钮,使登录菜单弹出,尽管我怀疑这是否正确。