python实现自动登录人人网并采集信息的方法


Posted in Python onJune 28, 2015

本文实例讲述了python实现自动登录人人网并采集信息的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import re
import urllib2
import urllib
import cookielib
class Renren(object):
  def __init__(self):
    self.name = self.pwd = self.content = self.domain = self.origURL = ''
    self.operate = ''#登录进去的操作对象
    self.cj = cookielib.LWPCookieJar()
    try: 
      self.cj.revert('./renren.coockie') 
    except Exception,e:
      print e
    self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cj))
    urllib2.install_opener(self.opener)
  def setinfo(self,username,password,domain,origURL):
    '''设置用户登录信息'''
    self.name = username
    self.pwd = password
    self.domain = domain
    self.origURL = origURL
  def login(self):
    '''登录人人网'''
    params = {
      'domain':self.domain,
      'origURL':self.origURL,
      'email':self.name, 
      'password':self.pwd}
    print 'login.......'
    req = urllib2.Request( 
      'http://www.renren.com/PLogin.do',
      urllib.urlencode(params)
    )
    self.file=urllib2.urlopen(req).read()    
    newsfeed = open('news.html','w')
    try:
      newsfeed.write(self.file)
    except Exception, e:
      newsfeed.close()
    self.operate = self.opener.open(req) 
    print type(self.operate)
    print self.operate.geturl()
    if self.operate.geturl(): 
      print 'Logged on successfully!'
      self.cj.save('./renren.coockie')
      self.__viewnewinfo()
    else:
      print 'Logged on error'
  def __viewnewinfo(self):
    '''查看好友的更新状态'''
    self.__caiinfo()
  def __caiinfo(self):
    '''采集信息'''    
    h3patten = re.compile('<article>(.*?)</article>')#匹配范围
    apatten = re.compile('<h3.+>(.+)</h3>:')#匹配作者
    cpatten = re.compile('</a>(.+)\s')#匹配内容 
    content = h3patten.findall(self.file)
    print len(content)  
    infocontent = self.operate.readlines()
    print type(infocontent)
    print 'friend newinfo:' 
    for i in infocontent:
      content = h3patten.findall(i)
      if len(content) != 0:
        for m in content:
          username = apatten.findall(m)
          info = cpatten.findall(m)
          if len(username) !=0:
            print username[0],'说:',info[0]
            print '----------------------------------------------'
          else:
            continue
ren = Renren()
username = 'username'#你的人人网的帐号
password = 'password'#你的人人网的密码
domain = 'www.renren.com'#人人网的地址
origURL = 'http://www.renren.com/home'#人人网登录以后的地址
ren.setinfo(username,password,domain,origURL)
ren.login()

希望本文所述对大家的Python序设计有所帮助。

Python 相关文章推荐
python中map、any、all函数用法分析
Apr 21 Python
Python内建数据结构详解
Feb 03 Python
python实现决策树分类算法
Dec 21 Python
浅析python3字符串格式化format()函数的简单用法
Dec 07 Python
python实现车牌识别的示例代码
Aug 05 Python
Python爬取知乎图片代码实现解析
Sep 17 Python
python识别验证码图片实例详解
Feb 17 Python
Python列表切片常用操作实例解析
Mar 10 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python实现斗地主分牌洗牌
Jun 22 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
解决Windows下python和pip命令无法使用的问题
Aug 31 Python
Python实现将绝对URL替换成相对URL的方法
Jun 28 #Python
python实现将html表格转换成CSV文件的方法
Jun 28 #Python
python实现根据主机名字获得所有ip地址的方法
Jun 28 #Python
python自动zip压缩目录的方法
Jun 28 #Python
python查找指定具有相同内容文件的方法
Jun 28 #Python
python中getaddrinfo()基本用法实例分析
Jun 28 #Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
Jun 28 #Python
You might like
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
php+mysql数据库实现无限分类的方法
2014/12/12 PHP
PHP关联数组实现根据元素值删除元素的方法
2015/06/26 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
基于php流程控制语句和循环控制语句(讲解)
2017/10/23 PHP
PHP解密支付宝小程序的加密数据、手机号的示例代码
2021/02/26 PHP
javascript attachEvent绑定多个事件执行顺序问题
2010/10/20 Javascript
JS+CSS实现一个气泡提示框
2013/08/18 Javascript
点击页面其它地方隐藏该div的两种思路
2013/11/18 Javascript
jQuery取id有.的值的方法
2014/05/21 Javascript
jquery模拟alert的弹窗插件
2015/07/31 Javascript
JavaScript淡入淡出渐变简单实例
2015/08/06 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
全面解析Python的While循环语句的使用方法
2015/10/13 Python
python实现二维码扫码自动登录淘宝
2016/12/27 Python
python处理数据,存进hive表的方法
2018/07/04 Python
Python Web编程之WSGI协议简介
2018/07/18 Python
Python SMTP发送邮件遇到的一些问题及解决办法
2018/10/24 Python
Python程序打包工具py2exe和PyInstaller详解
2019/06/28 Python
Windows系统Python直接调用C++ DLL的方法
2019/08/01 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
python 爬取腾讯视频评论的实现步骤
2021/02/18 Python
就业推荐自我鉴定
2013/10/06 职场文书
2014新年寄语
2014/01/20 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
公司授权委托书样本
2014/09/15 职场文书
2014班子成员自我剖析材料思想汇报
2014/10/01 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
检讨书怎么写
2015/01/23 职场文书
工资证明范本
2015/06/12 职场文书
六一儿童节新闻稿
2015/07/17 职场文书