用Python编写的CGI脚本来搜索数据库并打印结果

2024-04-23 23:07:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个CGI脚本,它接受表单数据,发送到搜索引擎,搜索,然后在运行我的CGI脚本的网页上显示结果。我一直在尝试使用urllib和urllib2。在

在我的剧本中:你好.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). 在

当前脚本不工作。我不确定我只是犯了一些语法错误,或者我是否需要一个全新的方法。在

第一个错误在

数据2=urllib.urlencode数据(D)

内置类型错误= TypeError:不是有效的非字符串序列或映射对象 args=('不是有效的非字符串序列或映射对象',)

其中“print data”的结果是('','','TTBar','','',''),TTBar是我的查询。在


Tags: 数据py脚本comurl网页dataresponse
1条回答
网友
1楼 · 发布于 2024-04-23 23:07:05

不确定如何获取表单数据,但datasearch = form["data_search"].value似乎已经返回了data_search参数的值。使用urlparse.urlparse解析完整的url,即http://somesite.com/?datasearch=TTBAR。因此,你可以这样做:

import urllib2

url = 'http://example.com'
datasearch = 'TTBAR'
req = urllib2.Request(url, {'param': datasearch})
resp = urllib2.urlopen(req)

或者更好地使用优秀的requests库:

^{pr2}$

相关问题 更多 >