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使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
简单实现python收发邮件功能
Jan 05 Python
Python3.6安装及引入Requests库的实现方法
Jan 24 Python
python列表的增删改查实例代码
Jan 30 Python
Python中协程用法代码详解
Feb 10 Python
Django使用AJAX调用自己写的API接口的方法
Mar 06 Python
最新2019Pycharm安装教程 亲测
Feb 28 Python
Python类绑定方法及非绑定方法实例解析
Oct 09 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 Python
Python 实现集合Set的示例
Dec 21 Python
Python中相见恨晚的技巧
Apr 13 Python
Python使用openpyxl模块处理Excel文件
Jun 05 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学习之PHP运算符
2006/10/09 PHP
PHP 的几个配置文件函数
2006/12/21 PHP
php 无限分类的树类代码
2009/12/03 PHP
PHP 文件上传全攻略
2010/04/28 PHP
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
php cookie中点号(句号)自动转为下划线问题
2014/10/21 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
PHP 以POST方式提交XML、获取XML,解析XML详解及实例
2016/10/26 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
PHP那些琐碎的知识点(整理)
2017/05/20 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
laravel实现图片上传预览,及编辑时可更换图片,并实时变化的例子
2019/11/14 PHP
jquery BS,dialog控件自适应大小
2009/07/06 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
javascript两种function的定义介绍及区别说明
2013/05/02 Javascript
深入理解使用Vue实现Context-Menu的思考与总结
2019/03/09 Javascript
javascript实现蒙版与禁止页面滚动
2020/01/11 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
Vue文本模糊匹配功能如何实现
2020/07/30 Javascript
Python读取图片EXIF信息类库介绍和使用实例
2014/07/10 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
django使用xadmin的全局配置详解
2019/11/15 Python
Java Spring项目国际化(i18n)详细方法与实例
2020/03/20 Python
windows python3安装Jupyter Notebooks教程
2020/04/13 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
如何使用amaze ui的分页样式封装一个通用的JS分页控件
2020/08/21 HTML / CSS
英国网上超市:Ocado
2020/03/05 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
期末总结的个人自我评价
2013/11/02 职场文书
学生自我鉴定
2013/12/18 职场文书
法制报告会主持词
2014/04/02 职场文书
党员学习群众路线心得体会
2014/11/04 职场文书
北京英文导游词
2015/02/12 职场文书
喜迎建国70周年:有关爱国的名言名句
2019/09/24 职场文书
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL