前段时间发现一个不错的网站,上面有非常多的我喜欢的mp3歌曲,因为歌曲的下载地址分布在各个子页面上,我便写了一个python脚本用来抓取各个页面的mp3下载地址自动整理下载。但是遇到一个小问题,网站需要id登陆才可以打开页面并下载。后来xyb给了两种登陆代码可以实现我要的功能。后来我又看了一下python2.3的lib ref文档,发现其实用httplib就可以实现,代码如下:
# loginbbs.py
import urllib,httplib
params = urllib.urlencode({'username':'pytest', #此处为要post的登陆参数,你可以修改为你自己的参数
'password':'pypassword',
'Cookies_Time': 1,
'IsLogin':True})
headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "text/plain"}
#构建headers
conn = httplib.HTTPConnection("music.popv.net:80") #建立http连接,记得地址不要加'http://'且要加上port
conn.request("POST",http://music.popv.net/popv/login.asp, params, headers)
#发送登陆请求
response = conn.getresponse() #获得回复
print response.status, response.reason #获得请求状态
data = response.read() #获得登陆后的网页内容
conn.close() #关闭连接