Python POST请求失败

2024-10-03 15:25:09 发布

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

我想在这个网站上做一个帖子请求:

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

Tags: orgimporthttpurldataresponsestatsurllib2
2条回答

正如您所怀疑的,您缺少一个隐藏字段: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())

我知道在mechanize中,该网站要求searchOrg学术年度searchSportsearchDiv。你一定要注意机器人.txt. 在

相关问题 更多 >