cookie很好搞,基本通过自动设置就可以了,大多数都可以这么来完成:
# cookie install
cookie = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
比较麻烦的是怎么样获取post提交的字段
我模拟了一下www2登录的过程,发现登录过程中字段都隐藏起来了。我用了一个比较差劲的方法,登录两次。发现实际上要post三个字段, id, passwd, kick_multi
于是整个登录过程就是这样的
loginurl = '
http://www.newsmth.net/bbslogin1203.php?mainurl=';
logindata = {'id':'YOUUSERID','passwd':'YOURPASSWORD','kick_multi':'1'};
def login():
# cookie install
cookie = cookielib.CookieJar();
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
urllib2.install_opener(opener)
# simulate login
request = urllib2.Request(loginurl)
postdata = urllib.urlencode(logindata)
try:
urllib2.urlopen(request,postdata)
return True
except:
return False
用特快做例子是没问题的
expressurl = '
http://www.newsmth.net/bbsdoc.php?board=NewExpress'
def gethtml(url):
request = urllib2.Request(url)
response = urllib2.urlopen(request)
try:
html = response.read()
return html
except:
print '获取网页失败!'
return ''
if __name__ == '__main__':
if login():
print gethtml(expressurl)
【 在 ghost888 (ghost888) 的大作中提到: 】
: 目前已经学会使用urlopen()和BeautifulSoup库打开解析网页,写了个小程序下一些网站的MP3和文档。
: 但是涉及到需要用户名,密码提交的网站就不知道如何下手,基本会使用cookie和cookiejar保存返回的
: cookie。现在使用firefox插件firebug获取提交的表单,一头雾水,请版上大牛指教。
--
[m [36m※ 来源:·水木社区
http://newsmth.net·[FROM: 159.226.21.*] [m