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使用rabbitmq实现网络爬虫示例
Feb 20 Python
Python实现动态添加类的属性或成员函数的解决方法
Jul 16 Python
python打开文件并获取文件相关属性的方法
Apr 23 Python
Django中Model的使用方法教程
Mar 07 Python
对Pyhon实现静态变量全局变量的方法详解
Jan 11 Python
Python基础之文件读取的讲解
Feb 16 Python
pycharm配置git(图文教程)
Aug 16 Python
感知器基础原理及python实现过程详解
Sep 30 Python
Python: 传递列表副本方式
Dec 19 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
详解python tkinter包获取本地绝对路径(以获取图片并展示)
Sep 04 Python
详解如何修改python中字典的键和值
Sep 29 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 变量定义方法
2009/06/14 PHP
php购物网站支付paypal使用方法
2010/11/28 PHP
for循环连续求和、九九乘法表代码
2012/02/20 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
再论Javascript的类继承
2011/03/05 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
CSS鼠标响应事件经过、移动、点击示例介绍
2013/09/04 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
2017/02/13 Javascript
Angular排序实例详解
2017/06/28 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
原生JavaScript实现的简单放大镜效果示例
2018/02/07 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
React 使用browserHistory项目访问404问题解决
2018/06/01 Javascript
Vue隐藏显示、只读实例代码
2018/07/18 Javascript
解决jQuery使用append添加的元素事件无效的问题
2018/08/30 jQuery
vue基础之事件v-onclick=&quot;函数&quot;用法示例
2019/03/11 Javascript
Vue-Ant Design Vue-普通及自定义校验实例
2020/10/24 Javascript
[00:32]2018DOTA2亚洲邀请赛出场——VP
2018/04/04 DOTA
实例分析python3实现并发访问水平切分表
2018/09/29 Python
Python 编程速成(推荐)
2019/04/15 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
如何基于python生成list的所有的子集
2019/11/11 Python
mac使用python识别图形验证码功能
2020/01/10 Python
PyCharm中配置PySide2的图文教程
2020/06/18 Python
详解CSS3的图层阴影和文字阴影效果使用
2016/06/09 HTML / CSS
迪拜航空官方网站:flydubai
2017/04/20 全球购物
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
澳大利亚工具仓库:Tools Warehouse
2018/10/15 全球购物
公司董事长职责
2013/12/12 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
教师个人自我评价范文
2014/04/13 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
2016年员工政治思想表现评语
2015/12/02 职场文书
CSS实现隐藏搜索框功能(动画正反向序列)
2021/07/21 HTML / CSS