使用Python,我尝试将表单提交到网址并获得回复..这就是我正在做的事情:
import urllib, urllib2
data = {
'date': '300186',
'search_type': 'state',
'search_state': 'NY',
}
req = urllib2.Request(
url='https://services.aamc.org/20/mcat/findsite',
data=urllib.urlencode(data),
headers={"Content-type": "application/x-www-form-urlencoded"}
)
response = urllib2.urlopen(req)
print(response.read())
但是,我得到了这个:
<script>location.replace('https://services.aamc.org/20/mcat');</script>
我想这只是意味着重定向到主页...我是否遗漏了某些内容,或者AAMC网站是故意这样做的??
由于
修改
所以我基本上试图连接到网址&#34; https://services.aamc.org/20/mcat/findsite/findexam?date=3001816search_type=state&search_state=NY&#34;
当我在浏览器中输入此内容时,此功能正常。所以我猜这个查询没有错误
答案 0 :(得分:0)
我认为您已经从浏览器登录该站点。因此,该网站可能已在您的浏览器中放置一个cookie,以便在下次尝试时识别您自动登录您(就像stackoverflow.com一样)。但是当您从python脚本发送请求时,没有任何东西可以识别您,并且您被重定向到登录页面(我尝试了您显示的URL并且是......)。
您必须在脚本中进行连接才能传递登录页面。但要使其正常工作,您必须向HttpCookieProcessor
Opener
处理程序
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
然后使用
response = opener.open(req)
而不是
response = urllib2.urlopen(req)