首先分析一下人人网登录页面
使用firefox打开http://www.renren.com/网址,按F12查看页面信息。
可以看到红色框体部分就是登录按钮请求的地址,只要输入正确的用户名密码就可以登录成功。
所以整个登录过程十分简单,代码如下:
#encoding=utf-8
import urllib2,urllib,cookielib
def renrenBrower(url,user,password):
#登陆页面,可以通过抓包工具分析获得,如fiddler,wireshark
login_page = "http://www.renren.com/PLogin.do"
try:
#获得一个cookieJar实例
cj = cookielib.CookieJar()
#cookieJar作为参数,获得一个opener的实例
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
#伪装成一个正常的浏览器,避免有些web服务器拒绝访问。
opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]
#生成Post数据,含有登陆用户名密码。
data = urllib.urlencode({"email":user,"password":password})
#以post的方法访问登陆页面,访问之后cookieJar会自定保存cookie
opener.open(login_page,data)
#以带cookie的方式访问页面
op=opener.open(url)
#读取页面源码
data= op.read()
return data
except Exception,e:
print str(e)
#访问某用户的个人主页,其实这已经实现了人人网的签到功能。
print renrenBrower("http://www.renren.com","test_python01@163.com","userfortest1")
后面的邮箱和密码是我为了测试而注册的。
直接运行代码,登录后的页面将在控制带打印出来,其内容与正常登录后的页面源码一致。
对于一些页面,是由js拼接起来的,所以需要得到js内容才能得到真实页面,这就需要用到其他库了。