Python自学-第12次作业

网页数据操作类设计
本文介绍了一个用于操作网页数据的Python类,该类能够获取指定URL的状态码、内容及链接数量,利用urllib模块实现核心功能。
#coding=utf8

'''

题目一: 写一个网页数据操作类。完成下面的功能:

提示:需要用到urllib模块

get_httpcode()获取网页的状态码,返回结果例如:200,301,404等 类型为int

get_htmlcontent() 获取网页的内容。返回类型:str

get_linknum()计算网页的链接数目。

'''

import urllib
import re

class mywebapp(object):

    def __init__(self):
        pass

    def get_httpcode(self,url):
        print url
        if not url.startswith('http://') and  not url.startswith('https://'):
            raise  TypeError,'Url must start with http:// or https:// .....'
        res = urllib.urlopen(url)
        page_status = res.getcode()
        print 'http status is %d' %page_status

    def get_htmlcontent(self,url):
        if not (url.startswith('http://') or url.startswith('https://')):
            raise TypeError, 'Url must start with http:// or https:// .....'
        content = urllib.urlopen(url)
        print content.read()

    def get_linknum(self,url):
        content = urllib.urlopen(url)
        print 'url is start'
        replace_content = content.read().replace(' ','')
        urls = re.findall(r'(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?',replace_content,re.I)
        for i in urls :
            print i
        #print len(content.split('<a href=')) - 1

myapp = mywebapp()
print myapp.get_httpcode("http://www.baidu.com")
print myapp.get_htmlcontent('http://www.baidu.com')
print myapp.get_linknum('http://www.baidu.com')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值