使用urllib2提交搜索表单(Python)
我正在尝试在学校的系统中搜索课程,登录用我的账号信息是可以的。
import urllib, urllib2, cookielib,re
username = 'user'
password = 'pass'
# Login main site
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
login_data = urllib.urlencode({'userid' : username, 'pwd' : password})
opener.open('https://psns.cc.stonybrook.edu/psp/he90prods/?cmd=login', login_data)
但是搜索课程却不成功,这里是我现在的情况。
# Fill in Class search criteria
search_data = {'CLASS_SRCH_WRK2_CATALOG_NBR$73$': '575', 'CLASS_SRCH_WRK2_SUBJECT$69$':'AMS'}
request = urllib2.Request('https://psns.cc.stonybrook.edu/psc/he90prods/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.CLASS_SEARCH.GBL', urllib.urlencode(search_data))
response = opener.open(request)
print response.read()
这是我看到的内容。
https://i.stack.imgur.com/nmk0C.jpg
如果操作正确的话,应该出现这样的内容。
https://i.stack.imgur.com/BSOuJ.png
(我还不能发图片……)
我在搜索表单中做错了什么呢?
1 个回答
0
在调用 urllib2.Request()
的时候,第二个参数是 POST
数据,而不是 GET
查询字符串。如果你想发送查询字符串,可以直接把它加到网址后面:
request = urllib2.Request('https://psns.cc.stonybrook.edu/psc/he90prods/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.CLASS_SEARCH.GBL?' + urllib.urlencode(search_data))