Отправка поисковой формы с использованием urllib2 (python) - PullRequest
0 голосов
/ 18 июля 2011

Я пытаюсь найти курсы в системе моей школы и работаю, используя данные для входа в систему

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()

Вот что я вижу

http://i.imgur.com/4qlTV.jpg

Вот что должно появиться, если все сделано правильно

http://i.imgur.com/3e0Fq.png

(можетеще не публиковать изображения ..)

Что я делаю не так с формой поиска?

1 Ответ

0 голосов
/ 18 июля 2011

Второй аргумент urllib2.Request() - это данные POST, а не строка запроса GET.Вы можете отправить строку запроса, напрямую прикрепив ее к URL:

request = urllib2.Request('https://psns.cc.stonybrook.edu/psc/he90prods/EMPLOYEE/HRMS/c/SA_LEARNER_SERVICES.CLASS_SEARCH.GBL?' + urllib.urlencode(search_data))
...