Python模拟登录人人抓取内容页问题,python模拟人人抓取,# -*- coding


# -*- coding: cp936 -*-import HTMLParserimport urlparseimport urllibimport urllib2import cookielibimport stringimport re#登录界面的主页hosturl = "http://www.renren.com"#这里是将用户名和密码等发送到的页面上,这里需要抓包(我的方法是打开chrome浏览器,打开到登录页面,打开“审查元素”,在里面的网络里面查到的)posturl = "http://www.renren.com/ajaxLogin/login?"#生成cookiecj = cookielib.LWPCookieJar()cookie_support = urllib2.HTTPCookieProcessor(cj)opener = urllib2.build_opener(cookie_support,urllib2.HTTPHandler)urllib2.install_opener(opener)#打开登录界面,获取cookie,并将该cookie保存下来h = urllib2.urlopen(hosturl)#构造头,这方法和上面获取posturl的方法是一样的headers = { 'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.56 Safari/537.17','Referer':'http://www.renren.com/SysHome.do'}#发送的数据,方法同上postdata = {'captcha_type' :'web_login','domain' :  'renren.com','email' :  'cologne_2008@126.com',  #用户名'icode':  '','key_id':  '1','origURL':  'http://www.renren.com/home','password':  '73a6ccf8c62c66156592420aa44c4afff713ab9197914ce1610f9f36c3f97ae8', #密码,这里是密文'rkey':  'd0cf42c2d3d337f9e5d14083f2d52cb2'}#将数据进行编码postdata = urllib.urlencode(postdata)#构造一个请求消息request = urllib2.Request(posturl,postdata,headers)#发送一个请求消息response = urllib2.urlopen(request)text = response.read()print "text:%s" % textlistvalue=text.strip('{}').split(",")#获取到人人登录的主页homeUrl ="http:"+listvalue[1].split(":")[2];print "回调地址:%s" % homeUrlfriendUrl = "http://friend.renren.com/myfriendlistx.do"#访问好友页面request = urllib2.Request(friendUrl)#发送一个请求消息friendText = urllib2.urlopen(request).read()print "text:%s" % friendText

最后总是得不到正确的结果,本人新手,不知道是URL有问题还是什么低级错误,希望有人能够帮我看下!

我的一个项目BlogsToWordpress中已经实现了:

模拟登陆人人网,抓取数据(导出为WXR)

相关代码可参考:

BlogRenren.py

项目使用方法参见:BlogsToWordpress

编橙之家文章,

评论关闭