#!/usr/bin/env python
#coding:utf-8
#author:sourbell
#http://sourbell.im
import urllib2,urllib,httplib,cookielib
email = 'i@sourbell.im' #改成自己的用户名
passwd = 'password' #改成自己的密码
def login():
'''这个就是登录脚本'''
print 'try to login...'
#登录需要准备cookie
cookie=cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie), urllib2.HTTPHandler)
urllib2.install_opener(opener)
#现在填表
postdata=urllib.urlencode({'email':email,
'password':passwd,
'submit':'登录',
})
req = urllib2.Request(
url = 'http://www.xiami.com/member/login',
data = postdata
)
#填header,伪装成正常浏览访问,这是一种写法,也可以用我之前那篇文章的写法,更有条理一点
req.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; QQDownload 627; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.0.3705; AskTB5.6')
req.add_header('Accept','*/*')
req.add_header('Accept-Encoding','gzip,deflate')
req.add_header('Referer', 'http://www.xiami.com/')
req.add_header('x-requested-with', 'XMLHttpRequest')
req.add_header('Accept-Language', 'zh-cn')
req.add_header('Cache-Control', 'no-cache')
req.add_header('Content-Length', '0')
#交登录表,然后就登录成功了
print '...login form submitted'
result = urllib2.urlopen(req).read()
print '...login succeed!'
def sign():
postdata=urllib.urlencode({'':'',
})
req = urllib2.Request(
url = 'http://www.xiami.com/task/signin',
data = postdata,
)
#填header,伪装成正常浏览访问,这是一种写法,也可以用我之前那篇文章的写法,更有条理一点
req.add_header('User-Agent','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; QQDownload 627; .NET CLR 2.0.50727; CIBA; .NET CLR 3.0.04506.30; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET CLR 1.0.3705; AskTB5.6')
req.add_header('Accept','*/*')
req.add_header('Accept-Encoding','gzip,deflate')
req.add_header('Referer', 'http://www.xiami.com/')
req.add_header('x-requested-with', 'XMLHttpRequest')
req.add_header('Accept-Language', 'zh-cn')
req.add_header('Cache-Control', 'no-cache')
req.add_header('Content-Length', '0')
response = urllib2.urlopen(req)
print '...succeed!'
print '...Signed Days:',response.read()
if __name__ == '__main__':
login()
sign()