检查网址是否存在

简介:   # -*- coding: utf-8 -*- from urlparse import urlsplit from httplib import HTTPConnection class HttpChecker: """ 检测网址是否存在 """ ...

 

# -*- coding: utf-8 -*-

from urlparse import urlsplit
from httplib import HTTPConnection


class HttpChecker:
    """ 检测网址是否存在 """

    def __init__(self, domain):
        if "//" in domain: #网址,不止是域名
            self.netloc = urlsplit(domain).netloc
        else:
            self.netloc = domain

    def __enter__(self):
        self.connection = HTTPConnection(self.netloc)
        return self

    def __exit__(self, exc_type, exc_value, traceback):
        del self.connection

    def check(self, url, splited=False):
        status = 0
        if splited: #已经是网址中域名以后部分,必须以/开头
            path = url
        else:
            netloc, path = urlsplit(url)[1:3]
            if netloc and netloc != self.netloc:
                self.netloc = netloc
                self.connection = HTTPConnection(self.netloc)
        self.connection.connect()
        self.connection.request("HEAD", path)
        status = self.connection.getresponse().status
        self.connection.close()
        return status == 200



if __name__ == "__main__":
    with HttpChecker("www.google.com.hk") as hc:
        print hc.check("http://www.google.com.hk/intl/zh-CN/options/")
目录
相关文章
|
存储 缓存 编译器
探索 Jetpack Compose 内核:深入 SlotTable 系统
探索 Jetpack Compose 内核:深入 SlotTable 系统
526 1
|
编解码 安全 搜索推荐
还没适配 Android 12 的要抓紧了(下)
还没适配 Android 12 的要抓紧了(下)
2102 0
还没适配 Android 12 的要抓紧了(下)
|
编译器 PHP
深入浅出 Compose Compiler(4) 智能重组与 $changed 参数
深入浅出 Compose Compiler(4) 智能重组与 $changed 参数
208 5
深入浅出 Compose Compiler(4) 智能重组与 $changed 参数
|
存储 缓存 安全
Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?
Android14 适配之——现有 App 安装到 Android14 手机上需要注意些什么?
778 0
|
前端开发
|
Java API Android开发
Android 静态注册广播接收者和动态注册广播接收者(Android8.0之前和之后)
Android 静态注册广播接收者和动态注册广播接收者(Android8.0之前和之后)
567 0
|
XML API Android开发
获取正在前台运行的apk 包名
获取正在前台运行的apk 包名
471 5
|
Android开发 开发者 UED
使用AlarmManager实现Android应用中的定时任务
使用AlarmManager实现Android应用中的定时任务
|
XML 自然语言处理 Java
android什么是数字助理, 问ChatGPT
在Android上,数字助理应用通常是指智能语音助手,比如谷歌助手(Google Assistant)、小米的小爱同学、华为的小艾等。这些应用可以通过语音识别和自然语言处理技术来实现与用户的互动,
683 0
|
XML Shell Android开发
android12.0(S) DeviceOwner 应用默认授权(MDM 权限)
android12.0(S) DeviceOwner 应用默认授权(MDM 权限)
1584 0