【发布时间】:2011-08-02 14:06:28
【问题描述】:
我想编写一个 CGI 脚本,它获取表单数据,将其发送到搜索引擎,搜索,然后在我的 cgi 脚本运行的网页上显示结果。我一直在尝试使用 urllib 和 urllib2。
在我的脚本中:hello.py
if form.has_key("data_search"):
datasearch = form["data_search"].value
url = 'http://www.example.com/'
data = urlparse.urlparse(datasearch)
data2 = urllib.urlencode(data)
req = urllib2.Request(url, data2)
response = urllib2.urlopen(url, data2)
the_page = response.read()
print response
response.close()
所以我想获取用户输入(datasearch),将其发送到不同 url (www.example.com) 的搜索引擎,并在我的网页 (www.server.com) 上打印搜索结果/cgi-bin/hello.py)。
当前的脚本不工作。我不确定我只是犯了某种语法错误,或者我是否完全需要一种新方法。
第一个错误在
data2 = urllib.urlencode(数据)
内置类型错误 = TypeError:不是有效的非字符串序列或映射对象 args = ('不是一个有效的非字符串序列或映射对象',)
'print data' 的结果是 ('', '', 'TTBar', '', '', '') 并且 TTBar 是我的查询。
【问题讨论】:
-
我不明白,有什么问题?
-
我已经编辑了问题是否更清楚了?
-
哪里出了问题?请打印您收到的任何堆栈跟踪(如果您只是收到 HTTP 500 错误,请查看并添加一些打印语句以查看您获得了多远/其中一些值是多少)。
-
“不工作”到底是什么意思?你得到一个错误或只是一个空白页?