从本地计算机查询MIT START网站的python脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从本地计算机查询MIT START网站的python脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1593字,纯文字阅读大概需要3分钟。
内容图文
![从本地计算机查询MIT START网站的python脚本](/upload/InfoBanner/zyjiaocheng/656/06a92bcb5fff41ddbb450c2a875fd420.jpg)
我正在学习Python,我目前为自己设置的项目包括从连接到网络的笔记本电脑发送问题,连接到MIT START NLP database,输入问题,检索响应并显示响应.我已经阅读了docs.python.org上的“如何使用urllib2获取Internet资源”,但似乎缺少这种想法的含义.这是我的代码:
import urllib
import urllib2
question = raw_input("What is your question? ")
url = 'http://start.csail.mit.edu/'
values = question
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
这是我得到的错误:
Traceback (most recent call last): File “mitstart.py”, line 9, in
data = urllib.urlencode(values) File “/usr/lib/python2.7/urllib.py”, line 1298, in urlencode
raise TypeError TypeError: not a valid non-string sequence or mapping object
所以我认为我在问题中提出问题的方式是错误的,所以我做到了
值= {问题}
和值=(问题)
和值=(“问题”)
没有喜悦.
(我知道,我的回答是“我正在学习,已经很晚了,突然我的妻子决定当我试图弄清楚这一点时,她的妻子需要和我谈谈一些琐碎的事情)”
我可以得到一些指导或至少指向正确的方向吗?
解决方法:
urllib.urlencode()不接受字符串作为参数.
正如@ernie所说,您应该指定查询参数.网址也缺少/startfarm.cgi部分:
<form method="post" action="startfarm.cgi">
更新的示例:
import cgi
from urllib import urlencode
from urllib2 import urlopen
data = urlencode(dict(query=raw_input("What is your question?"))).encode('ascii')
response = urlopen("http://start.csail.mit.edu/startfarm.cgi", data)
# extract encoding from Content-Type and print the response
_, params = cgi.parse_header(response.headers.get('Content-Type', ''))
print response.read().decode(params['charset'])
内容总结
以上是互联网集市为您收集整理的从本地计算机查询MIT START网站的python脚本全部内容,希望文章能够帮你解决从本地计算机查询MIT START网站的python脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。