Python POST 请求失败
Python POST Request Failing
我想在这个网站上做一个 POST 请求:
http://web1.ncaa.org/stats/StatsSrv/careersearch
右侧的窗体有四个下拉列表。当我运行下面的代码时,"学校"顽固地不会被选中。有一个隐藏的输入可能导致问题,但我无法修复它。页面上的javascript似乎没有效果,但我可能是错的。任何帮助不胜感激:
#!/usr/bin/python
import urllib
import urllib2
url = 'http://web1.ncaa.org/stats/StatsSrv/careersearch'
values = {'searchOrg' : '30123','academicYear' : '2011','searchSport' : 'MBA','searchDiv' : '1'}
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page
正如您所怀疑的,您缺少一个隐藏字段:doWhat = 'teamSearch'
(用于提交右侧的表单)。
使用这些请求值对我有用:
values = {'doWhat':'teamSearch', 'searchOrg' : '30123','academicYear' : '2011','searchSport' : 'MBA','searchDiv' : '1'}
我使用了机械化:
import mechanize
from BeautifulSoup import BeautifulSoup
mech = mechanize.Browser()
mech.set_handle_robots(False)
response = mech.open('http://web1.ncaa.org/stats/StatsSrv/careersearch')
mech.select_form(nr=2)
mech.form['searchOrg'] = ['30123']
mech.form['academicYear'] = ['2011']
mech.form['searchSport'] = ['MBA']
mech.form['searchDiv'] = ['1']
mech.submit()
soup = BeautifulSoup(mech.response().read())
我知道在机械化中,该网站要求以序列/列表形式搜索组织,学术年,搜索体育,搜索Div。 你绝对应该注意机器人,.txt。
相关文章:
- 一台特定计算机的Ajax请求数据未定义/失败
- 当我在chrome中切换设备模式时,$http.get请求失败
- Ajax错误检查-如果Ajax请求失败,如何防止内容发生更改
- Javascript-为什么我的JQueryAJAX请求失败
- Android/Chrome jQuery AJAX请求在到达服务器之前失败,并出现parserror
- 由于adblock,Javascript Ajax请求在chrome中失败,我有什么选择
- AJAX 请求不会在 400 个错误查询上执行失败
- Python POST 请求失败
- Ajax GET 请求的 URL 失败,但 hurl.it 相同 URL 的 GET 请求有效.什么给
- 对php的Angular post请求失败
- xml在使用SSL https请求时失败
- JQuery发布请求失败,发布后没有警报
- AJAX获取请求有时会在iOS Safari上失败
- Jquery Ajax请求失败
- AJAX请求json失败
- 如何根据ajax get请求的成功/失败在适当的范围内更改javascript变量
- node.js请求js与curl相比失败
- 如何判断哪个ajax请求失败
- gwt使用本机javascript向远程服务器发送POST请求失败
- 在Jasmine单元测试中,如何强制失败回调来触发失败请求