Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python3.4中使用urllib时,POST响应不是它应该使用的_Python_Python 3.x_Urlencode_Urllib - Fatal编程技术网

在Python3.4中使用urllib时,POST响应不是它应该使用的

在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

我正在尝试从我的大学下载网页,当你搜索课程时会返回该网页。网站位于此处:

关于如何在Python3.4中形成urllib请求,我一直在寻找关于SO的帖子,但没有任何帮助。我仍然无法获得我应该获得的结果页面,该页面显示何时/何地/等提供哪些课程

以下是我形成请求的方式:

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你有消息来源吗?这可以解释为什么我会得到这些结果。谢谢!不止一双眼睛总是有助于捕捉这些虫子。它工作得很好。很好。