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中的作用域规则详解
Jan 30 Python
Python数据分析之获取双色球历史信息的方法示例
Feb 03 Python
pycharm运行和调试不显示结果的解决方法
Nov 30 Python
解决Pycharm调用Turtle时 窗口一闪而过的问题
Feb 16 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python3获取当前目录的实现方法
Jul 29 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
Python插件机制实现详解
May 04 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python数据可视化实现多种图例代码详解
Jul 14 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
DOMXML函数笔记
2006/10/09 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
2012/03/27 PHP
用PHP实现 上一篇、下一篇的代码
2012/09/29 PHP
PHP的消息通信机制测试实例
2016/11/10 PHP
php使用yield对性能提升的测试实例分析
2019/09/19 PHP
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
addEventListener 的用法示例介绍
2014/05/07 Javascript
JavaScript截取、切割字符串的技巧
2016/01/07 Javascript
JavaScript探测CSS动画是否已经完成的方法
2016/08/30 Javascript
Bootstrap Scrollspy源码学习
2017/03/02 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
js实现延迟加载的几种方法
2017/04/24 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
vue组件中使用iframe元素的示例代码
2017/12/13 Javascript
详解Vue中watch对象内属性的方法
2019/02/01 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
通过seajs实现JavaScript的模块开发及按模块加载
2019/06/06 Javascript
layer.open的自适应及居中及子页面标题的修改方法
2019/09/05 Javascript
微信小程序实现蒙版弹出窗功能
2019/09/17 Javascript
python数据结构树和二叉树简介
2014/04/29 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Python 加密的实例详解
2017/10/09 Python
python爬虫爬取网页表格数据
2018/03/07 Python
基于Tensorflow使用CPU而不用GPU问题的解决
2020/02/07 Python
Python如何把Spark数据写入ElasticSearch
2020/04/18 Python
简单了解如何封装自己的Python包
2020/07/08 Python
HTML5 canvas实现雪花飘落特效
2016/03/08 HTML / CSS
浅谈移动端网页图片预加载方案
2018/11/05 HTML / CSS
西班牙美妆电商:Perfume’s Club(有中文站)
2018/08/08 全球购物
自主招生自荐信
2013/12/08 职场文书
送货司机岗位职责
2013/12/11 职场文书
2014年班组长工作总结
2014/11/20 职场文书
安全生产感想
2015/08/07 职场文书
Nebula Graph解决风控业务实践
2022/03/31 MySQL
详解Flutter自定义应用程序内键盘的实现方法
2022/06/14 Java/Android