Python实现登录人人网并抓取新鲜事的方法


Posted in Python onMay 11, 2015

本文实例讲述了Python实现登录人人网并抓取新鲜事的方法。分享给大家供大家参考。具体如下:

这里演示了Python登录人人网并抓取新鲜事的方法(抓取后的排版不太美观~~)

from sgmllib import SGMLParser
import sys,urllib2,urllib,cookielib
class spider(SGMLParser):
  def __init__(self,email,password):
    SGMLParser.__init__(self)
    self.h3=False
    self.h3_is_ready=False
    self.div=False
    self.h3_and_div=False
    self.a=False
    self.depth=0
    self.names=""
    self.dic={}  
    self.email=email
    self.password=password
    self.domain='renren.com'
    try:
      cookie=cookielib.CookieJar()
      cookieProc=urllib2.HTTPCookieProcessor(cookie)
    except:
      raise
    else:
      opener=urllib2.build_opener(cookieProc)
      urllib2.install_opener(opener)    
  def login(self):
    url='http://www.renren.com/PLogin.do'
    postdata={
         'email':self.email,
         'password':self.password,
         'domain':self.domain 
         }
    req=urllib2.Request(
              url,
              urllib.urlencode(postdata)      
              )
    self.file=urllib2.urlopen(req).read()
    #print self.file
  def start_h3(self,attrs):
    self.h3 = True
  def end_h3(self):
    self.h3=False
    self.h3_is_ready=True
  def start_a(self,attrs):
    if self.h3 or self.div:
      self.a=True
  def end_a(self):
    self.a=False
  def start_div(self,attrs):
    if self.h3_is_ready == False:
      return
    if self.div==True:
      self.depth += 1
    for k,v in attrs:
      if k == 'class' and v == 'content':
        self.div=True;
        self.h3_and_div=True  #h3 and div is connected
  def end_div(self):
    if self.depth == 0:
      self.div=False
      self.h3_and_div=False
      self.h3_is_ready=False
      self.names=""
    if self.div == True:
      self.depth-=1
  def handle_data(self,text):
    #record the name
    if self.h3 and self.a:
      self.names+=text
    #record says
    if self.h3 and (self.a==False):
      if not text:pass
      else: self.dic.setdefault(self.names,[]).append(text)
      return
    if self.h3_and_div:
      self.dic.setdefault(self.names,[]).append(text)
  def show(self):
    type = sys.getfilesystemencoding()
    for key in self.dic:
      print ( (''.join(key)).replace(' ','')).decode('utf-8').encode(type), \
         ( (''.join(self.dic[key])).replace(' ','')).decode('utf-8').encode(type)
renrenspider=spider('your email','your password')
renrenspider.login()
renrenspider.feed(renrenspider.file)
renrenspider.show()

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
编写Python脚本来实现最简单的FTP下载的教程
May 04 Python
举例讲解Python中字典的合并值相加与异或对比
Jun 04 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
Python设计实现的计算器功能完整实例
Aug 18 Python
Python使用xlwt模块操作Excel的方法详解
Mar 27 Python
用python 批量更改图像尺寸到统一大小的方法
Mar 31 Python
python sys.argv[]用法实例详解
May 25 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
Python Request类源码实现方法及原理解析
Aug 17 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 Python
python中的插入排序的简单用法
Jan 19 Python
Pytorch GPU内存占用很高,但是利用率很低如何解决
Jun 01 Python
python实现中文输出的两种方法
May 09 #Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 #Python
Python遍历指定文件及文件夹的方法
May 09 #Python
Python使用chardet判断字符编码
May 09 #Python
python操作ie登陆土豆网的方法
May 09 #Python
Python检测QQ在线状态的方法
May 09 #Python
python常见数制转换实例分析
May 09 #Python
You might like
PHP $_FILES函数详解
2011/03/09 PHP
php中file_get_contents与curl性能比较分析
2014/11/08 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
CentOS下搭建PHP环境与WordPress博客程序的全流程总结
2016/05/07 PHP
JS组件系列之Bootstrap Icon图标选择组件
2016/01/28 Javascript
javascript三种代码注释方法
2016/06/02 Javascript
Bootstrap模态窗口源码解析
2017/02/08 Javascript
nodejs入门教程二:创建一个简单应用示例
2017/04/24 NodeJs
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
vue中组件通信的八种方式(值得收藏!)
2019/08/09 Javascript
Vue.use()在new Vue() 之前使用的原因浅析
2019/08/26 Javascript
JavaScript Window窗口对象属性和使用方法
2020/01/19 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
快速解决vue2+vue-cli3项目ie兼容的问题
2020/11/17 Vue.js
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
利用python如何处理nc数据详解
2018/05/23 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
python各种excel写入方式的速度对比
2020/11/10 Python
美国蔬菜和植物种子公司:Burpee
2017/02/01 全球购物
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
酒店总经理欢迎词
2014/01/15 职场文书
单位提档介绍信
2014/01/17 职场文书
求职意向书
2014/04/01 职场文书
优秀安全员事迹材料
2014/05/11 职场文书
解放思想演讲稿
2014/09/11 职场文书
信用卡逾期证明示例
2014/09/13 职场文书
办护照工作证明
2014/10/01 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
党的群众路线教育实践活动个人对照检查材料(医生)
2014/11/05 职场文书
2015年中学校长工作总结
2015/05/19 职场文书
元素水平垂直居中的方式
2021/03/31 HTML / CSS
教你利用Selenium+python自动化来解决pip使用异常
2021/05/20 Python
教你使用Python pypinyin库实现汉字转拼音
2021/05/27 Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
2021/06/07 Python