python爬取文字编程_Python怎么爬取人人网新鲜事

Python怎么爬取人人网新鲜事

发布时间:2020-08-24 18:10:44

来源:亿速云

阅读:113

这篇文章将为大家详细讲解有关Python怎么爬取人人网新鲜事,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

Python实现登录人人网并抓取新鲜事的方法:from sgmllib import SGMLParser

import sys,urllib2,urllib,cookielib

class spider(SGMLParser):

def __init__(self,email,password):

SGMLParser.__init__(self)

self.h4=False

self.h4_is_ready=False

self.div=False

self.h4_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_h4(self,attrs):

self.h4 = True

def end_h4(self):

self.h4=False

self.h4_is_ready=True

def start_a(self,attrs):

if self.h4 or self.div:

self.a=True

def end_a(self):

self.a=False

def start_div(self,attrs):

if self.h4_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.h4_and_div=True  #h4 and div is connected

def end_div(self):

if self.depth == 0:

self.div=False

self.h4_and_div=False

self.h4_is_ready=False

self.names=""

if self.div == True:

self.depth-=1

def handle_data(self,text):

#record the name

if self.h4 and self.a:

self.names+=text

#record says

if self.h4 and (self.a==False):

if not text:pass

else: self.dic.setdefault(self.names,[]).append(text)

return

if self.h4_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怎么爬取人人网新鲜事就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值