使用mechanize提交表单时出现HTTP错误500

0 投票
1 回答
1095 浏览
提问于 2025-04-17 19:09

这是我第一次使用 mechanize,我正在尝试用它填写一个表单。

这是我的浏览器选项:

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)


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


br.addheaders = br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-    US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]

我用有效的值填写了表单,然后点击 br.submit(),但它给我返回了 HTTP: 错误 500:内部服务器错误。我在想是不是系统检测到是一个机器人在提交?但我以为 addheaders 就是用来解决这个问题的。

1 个回答

1

你可以使用 http://grablib.org/docs/,这个工具更简单也更高效。试试看吧。

在Linux上安装的方法是:

首先输入:

pip install pycurl lxml

然后再输入:

pip install grab

from grab import Grab

g = Grab()
g.go('http://google.com') # go to google.com
g.choose_form(0)  #form number
g.set_input('q', 'test')  # 'q'-input name, 'test' - search query
g.submit()  # send request
print g.xpath_list('//a/text()') # view xpath result link list 

抱歉我的英语不好。

撰写回答