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 相关文章推荐
python3模拟百度登录并实现百度贴吧签到示例分享(百度贴吧自动签到)
Feb 24 Python
python+opencv实现动态物体追踪
Jan 09 Python
Pycharm代码无法复制,无法选中删除,无法编辑的解决方法
Oct 22 Python
django 使用 PIL 压缩图片的例子
Aug 16 Python
python图片二值化提高识别率代码实例
Aug 24 Python
在pycharm中debug 实时查看数据操作(交互式)
Jun 09 Python
Java Unsafe类实现原理及测试代码
Sep 15 Python
谈谈python垃圾回收机制
Sep 27 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
Python爬虫进阶之爬取某视频并下载的实现
Dec 08 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 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
ThinkPHP写第一个模块应用
2012/02/20 PHP
解决File size limit exceeded 错误的方法
2013/06/14 PHP
PHP错误和异长常处理总结
2014/03/06 PHP
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php中的依赖注入实例详解
2019/08/14 PHP
解决laravel-admin 自己新建页面里 js 需要刷新一次的问题
2019/10/03 PHP
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
JQuery zClip插件实现复制页面内容到剪贴板
2015/11/02 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
Angularjs 滚动加载更多数据
2016/03/17 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
2016/11/22 Javascript
基于JavaScript实现窗口拖动效果
2017/01/18 Javascript
JavaScript你不知道的一些数组方法
2017/08/18 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
JavaScript 预解析的4种实现方法解析
2019/09/03 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
Python程序设计入门(2)变量类型简介
2014/06/16 Python
用Python制作在地图上模拟瘟疫扩散的Gif图
2015/03/31 Python
在python下读取并展示raw格式的图片实例
2019/01/24 Python
对dataframe数据之间求补集的实例详解
2019/01/30 Python
使用Python给头像加上圣诞帽或圣诞老人小图标附源码
2019/12/25 Python
Python使用正则实现计算字符串算式
2019/12/29 Python
Python代码一键转Jar包及Java调用Python新姿势
2020/03/10 Python
python3.7调试的实例方法
2020/07/21 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
美国汽配连锁巨头Pep Boys官网:轮胎更换、汽车维修服务和汽车零部件
2017/01/14 全球购物
手工制作的豪华英式沙发和沙发床:Willow & Hall
2019/05/03 全球购物
英国网上自行车商店:Tredz Bikes
2019/10/29 全球购物
投标保密承诺书
2014/05/19 职场文书
音乐节策划方案
2014/06/09 职场文书
支部书记四风对照材料
2014/08/28 职场文书
生产现场禁烟通知
2015/04/23 职场文书
pytorch 梯度NAN异常值的解决方案
2021/06/05 Python