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调用shell的方法
Nov 20 Python
Python Sleep休眠函数使用简单实例
Feb 02 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
Jul 27 Python
Python面向对象程序设计OOP入门教程【类,实例,继承,重载等】
Jan 05 Python
Python3转换html到pdf的不同解决方案
Mar 11 Python
详解Matplotlib绘图之属性设置
Aug 23 Python
Python csv模块使用方法代码实例
Aug 29 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
Jul 28 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
Python实现扫码工具的示例代码
Oct 09 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
数据库查询记录php 多行多列显示
2009/08/15 PHP
laravel安装和配置教程
2014/10/29 PHP
PHP中的闭包(匿名函数)浅析
2015/02/07 PHP
php为字符串前后添加指定数量字符的方法
2015/05/04 PHP
Laravel配置全局公共函数的方法步骤
2019/05/09 PHP
ExtJS 简介 让你知道extjs是什么
2008/12/29 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
js返回前一页刷新本页重载页面
2014/07/29 Javascript
Javascript快速排序算法详解
2014/12/03 Javascript
JS实现很酷的水波文字特效实例
2015/02/26 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
详解JavaScript中数组的reduce方法
2016/12/02 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
详解JavaScript RegExp对象
2017/02/04 Javascript
JS实现基于拖拽改变物体大小的方法
2018/01/23 Javascript
Java设计中的Builder模式的介绍
2018/03/22 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
Python实现获取操作系统版本信息方法
2015/04/08 Python
Python实现文件按照日期命名的方法
2015/07/09 Python
Python实现新浪博客备份的方法
2016/04/27 Python
python实现excel读写数据
2021/03/02 Python
django DRF图片路径问题的解决方法
2018/09/10 Python
python实现可变变量名方法详解
2019/07/01 Python
python基于opencv检测程序运行效率
2019/12/28 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
倡议书的写法
2014/08/30 职场文书
英语自我介绍演讲稿
2014/09/01 职场文书
街道社区活动报告
2015/02/05 职场文书