python解析短信_python——博客园首页信息提取与分析

前言

前两天写了博客,然后发到了博客园首页,然后看着点击量一点点上升,感觉怪怪的。

然后就产生了一点好奇:有多少人把博客发表到了首页上?每天博客园首页会发表多少文章?谁发表的文章最多?评论和阅读数量的对应关系是多少?

有了好奇之后,就在想,怎样才能知道答案?

1. 寻路第一步

通过浏览博客园发现,在博客园最多能看到200页。所以,能不能先把这200页给下载下来。之前有写过一篇博客,批量下载图片,所以可以用博客中类似的方法把这些网页下载下来。

from html.parser importHTMLParserimportos,urllib.request,sys#通过博客园NEXT按钮,可以获取下一个网页的地址,这样一直循环,就可以将200个网页下载下来。

#setp 1. 通过解析网页,获取下一个网页的地址。

classLinkParser(HTMLParser):def __init__(self,strict=False,domain=''):

HTMLParser.__init__(self,strict)

self.value=''self.domain=domain

self.next=[]defhandle_starttag(self,tag,attrs):if tag=='a':for i inattrs:if i[0]=='href':

self.value=i[1]defhandle_data(self,data):if data.startswith('Next'):if (self.domain!='' )and ('://' not inself.value):

self.next.append(self.domain+self.value)else:

self.next.append(self.value)#setp 2. 下载当前网页,并根据解析结果,下载下一个网页。

defgetLinks(url,domain):

doing=[url]

done=[]

cnt=0;while len(doing)>=1:

x=doing.pop();

done.append(x)

cnt=cnt+1;print('start:',x)try:

f=urllib.request.urlopen(x,timeout=120)

s=f.read()

f.close()

fx=open(os.path.join(os.getcwd(),'data','{0}.html'.format(str(cnt))),'wb') #需要在当前目录建立data文件夹

fx.write(s)

fx.close()

parser=LinkParser(strict=False,domain=domain)

parser.feed(s.decode())for i inparser.next:if i not indone:

doing.insert(0,i)

parser.next=[]print('ok:',x)except:print('error:',x)print(sys.exc_info())continue

returndoneif __name__=='__main__':

getLinks('http://www.cnblogs.com/','http://www.cnblogs.com/')

2. 从网页抽取信息

网页已经下载下来了,现在需要把信息从网页上抽取出来。

经过分析,每个网页上列出了20条记录,每条记录包含标题,作者,发布时间,推荐等信息。

怎样把这些给抽取出来呢?

先写一个小的程序,看看Python是怎么解析这些数据的:

数据:

10

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值