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类参数self使用示例
Feb 17 Python
python多进程操作实例
Nov 21 Python
Flask框架的学习指南之开发环境搭建
Nov 20 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python进行两个表格对比的方法
Jun 27 Python
python小程序实现刷票功能详解
Jul 17 Python
图文详解Django使用Pycharm连接MySQL数据库
Aug 09 Python
python lambda表达式(匿名函数)写法解析
Sep 16 Python
python sorted函数的小练习及解答
Sep 18 Python
numpy.array 操作使用简单总结
Nov 08 Python
Python函数生成器原理及使用详解
Mar 12 Python
Python运行提示缺少模块问题解决方案
Apr 02 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+Html+缓存
2006/11/25 PHP
PHP函数之error_reporting(E_ALL ^ E_NOTICE)详细说明
2011/07/01 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
浅析php插件 HTMLPurifier HTML解析器
2013/07/01 PHP
php简单实现快速排序的方法
2015/04/04 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
2019/09/08 PHP
Javascript 解疑
2009/11/11 Javascript
js 变量类型转换常用函数与代码[比较全]
2009/12/01 Javascript
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
javascript 主动派发事件总结
2011/08/09 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
AngularJS控制器继承自另一控制器
2016/05/09 Javascript
用nodejs的实现原理和搭建服务器(动态)
2016/08/10 NodeJs
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
jquery点击展示与隐藏更多内容
2016/12/03 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
微信公众号生成新浪短网址的实现(快速生成)
2019/08/18 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
Python对List中的元素排序的方法
2018/04/01 Python
python抓取搜狗微信公众号文章
2019/04/01 Python
对pyqt5之menu和action的使用详解
2019/06/20 Python
python如何写出表白程序
2020/06/01 Python
pandas to_excel 添加颜色操作
2020/07/14 Python
俄罗斯家居用品购物网站:Евродом
2020/11/21 全球购物
电信专业应届生自荐信
2013/09/28 职场文书
2015年元旦文艺汇演主持词
2014/03/26 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
个人安全承诺书
2014/05/22 职场文书
医疗专业毕业生求职信
2014/08/28 职场文书
公安个人四风问题对照检查及整改措施
2014/10/28 职场文书
党性分析材料格式
2014/12/19 职场文书
小学生作文批改评语
2014/12/25 职场文书
2019年手机市场的调研报告2篇
2019/10/10 职场文书
浅谈Python数学建模之整数规划
2021/06/23 Python
高并发下Redis如何保持数据一致性(避免读后写)
2022/03/18 Redis
springboot入门 之profile设置方式
2022/04/04 Java/Android