用python模拟提交表单

之前做的空教室查询的系统,我所获得的数据都是直接从教务处上一个个手动下载下来的,一直想做一个自动的版本,一直不知道怎么做,在看了python后发现,标准库里就有自带的函数,很方便。

下面就是我们学校查询课表的表单的精简形式


关键还是看form的method和action(即表单要提交给的网页)

接下来用urllib的urlencode方法,参数可以是二元组的列表,也可以是字典的形式,构造出表单中的提交项和对应的值,然后使用urlopen方法就可以像打开普通文件一样处理提交后转到的网页的数据了

# -*- coding: utf-8 -*-
import sys,re
import urllib,urllib2
url = "http://202.118.31.197/ACTIONQUERYCLASSROOMSCHEDULE.APPPROCESS?mode=2&query=1&YearTermName=2011-2012%D1%A7%C4%EA%B5%DA%B6%FE%D1%A7%C6%DA"
params = urllib.urlencode([('RoomTypeNO', '07'), ('StoryNO', '0000'),( 'YearTermNO', '12'),('ClassRoomNO', '000007113')])
req = urllib2.Request(url)
f = urllib2.urlopen(req,params)
print f.read()
然后通过正则表达式就可以提取网页数据等等,上例中是post方法提交的,get也差不了多少

你可能感兴趣的:(用python模拟提交表单)