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 相关文章推荐
用PyQt进行Python图形界面的程序的开发的入门指引
Apr 14 Python
Python保存MongoDB上的文件到本地的方法
Mar 16 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
Mar 12 Python
Python简单操作sqlite3的方法示例
Mar 22 Python
python实现验证码识别功能
Jun 07 Python
Python干货:分享Python绘制六种可视化图表
Aug 27 Python
python把1变成01的步骤总结
Feb 27 Python
Python 中包/模块的 `import` 操作代码
Apr 22 Python
Python实现TCP通信的示例代码
Sep 09 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
tensorflow之读取jpg图像长和宽实例
Jun 18 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与SQL注入攻击[三]
2007/04/17 PHP
php 正则表达式小结
2009/08/31 PHP
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
thinkPHP数据查询常用方法总结【select,find,getField,query】
2017/03/15 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
通过百度地图获取公交线路的站点坐标的js代码
2012/05/11 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
AngularJS的ng-repeat指令与scope继承关系实例详解
2017/01/21 Javascript
关于不同页面之间实现参数传递的几种方式讨论
2017/02/13 Javascript
JS字符串长度判断,超出进行自动截取的实例(支持中文)
2017/03/06 Javascript
基于AGS JS开发自定义贴图图层
2017/03/31 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
vue一个页面实现音乐播放器的示例
2018/02/06 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
vue组件开发props验证的实现
2019/02/12 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
用javascript实现倒计时效果
2021/02/09 Javascript
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
Python实现调度算法代码详解
2017/12/01 Python
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python调用自定义函数的实例操作
2019/06/26 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
2019/07/03 Python
Python各种扩展名区别点整理
2020/02/27 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
CSS3简单实现照片墙
2014/12/12 HTML / CSS
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
酒店七夕情人节活动策划方案
2014/08/24 职场文书
教师节寄语2015
2015/03/23 职场文书
关于党风廉政建设宣传教育月的活动总结!
2019/08/08 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
python学习之panda数据分析核心支持库
2021/05/07 Python
MySQL优化之如何写出高质量sql语句
2021/05/17 MySQL
关于JS中的作用域中的问题思考分享
2022/04/06 Javascript