在Python3.4中使用urllib时,POST响应不是它应该使用的
我正在尝试从我的大学下载网页,当你搜索课程时会返回该网页。网站位于此处: 关于如何在Python3.4中形成urllib请求,我一直在寻找关于SO的帖子,但没有任何帮助。我仍然无法获得我应该获得的结果页面,该页面显示何时/何地/等提供哪些课程 以下是我形成请求的方式:在Python3.4中使用urllib时,POST响应不是它应该使用的,python,python-3.x,urlencode,urllib,Python,Python 3.x,Urlencode,Urllib,我正在尝试从我的大学下载网页,当你搜索课程时会返回该网页。网站位于此处: 关于如何在Python3.4中形成urllib请求,我一直在寻找关于SO的帖子,但没有任何帮助。我仍然无法获得我应该获得的结果页面,该页面显示何时/何地/等提供哪些课程 以下是我形成请求的方式: post_data = {'Submit': 'Display Web Results', 'YearTer': '2014-92', 'S
post_data = {'Submit': 'Display Web Results',
'YearTer': '2014-92',
'ShowComments': 'on',
'ShowFinals': 'on',
'Breadth': 'ANY',
'Dept': 'I&C SCI',
'CourseNum': '',
'Division': 'ANY',
'CourseCodes': '',
'InstrName': '',
'CourseTitle': '',
'ClassType': 'ALL',
'Units': '',
'Days': '',
'StartTime': '',
'EndTime': '',
'MaxCap': '',
'FullCourses': 'ANY',
'FontSize': '100',
'CancelledCourses': 'Exclude',
'Bldg': '',
'Room': ''}
urlencoded_post_data = urllib.parse.urlencode(post_data)
binary_post_data = urlencoded_post_data.encode('utf-8')
header = {'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'text/html,application/xhtml+xml,application/xml'}
request = urllib.request.Request(url, data=binary_post_data, headers=header)
response = urllib.request.urlopen(request)
我得到的回应是同一个页面,而不是包含所有I&C Sci类的结果页面
有人能帮忙吗?我很确定我的请求是正确的。我已经检查了如果通过浏览器进行响应,响应应该是什么样子,但我似乎无法解决它。您在“YearTerm”参数中有一个输入错误。当它正确时,它会像预期的那样工作。请不要引用我的话,但我认为如果您对数据调用urlencode,它将发出get请求。尝试删除urlencode行及其后的一行。仅供将来参考,它可以简化对URL的HTTP请求Python@IonutHulub你有消息来源吗?这可以解释为什么我会得到这些结果。谢谢!不止一双眼睛总是有助于捕捉这些虫子。它工作得很好。很好。