微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python解析url、提取url参数、提取url数据Python2、Python3、提取url、端口、协议、路径

python3

from urllib.parse import urlparse

url = 'http://192.168.8.24:8161/11/12.htm'
_url = urlparse(url)
hostname = _url.hostname
port = _url.port
url_port = _url.netloc
url_path = _url.path
url_protocol = _url.scheme
print(f'域名:{hostname}\n端口:{port}\n域名+端口:{url_port}\n域名路径地址:{url_path}\n域名协议:{url_protocol}')

结果

域名:192.168.8.24
端口:8161
域名+端口:192.168.8.24:8161
域名路径地址:/11/12.htm
域名协议:http

实例

if __name__=="__main__":
    parser = argparse.ArgumentParser(description='宝塔面板数据库未授权访问')
    parser.add_argument("-r","--rhost",dest="rhost",type=str,help="target host",required=True)
    parser.add_argument("-p","--rport",dest="rport",type=int,help = "target port,default 888",default = 888)
    options = parser.parse_args()
    try:
        dip = options.rhost
        _url = urlparse(dip)
        # 判断协议
        if _url.scheme == "":
            scheme = "http://"
        else:
            scheme = _url.scheme + "://"
        # 判断域名
        if _url.hostname is None:
            domain = dip
        else:
            domain = _url.hostname
        # 判断端口
        if _url.port is None:
            port = options.rport
        else:
            port = _url.port

        url = scheme + domain + ":" + str(port)
        print(url)

        #check_baota(url)    # POC
    except Exception as e:
        sys.exit(1)

 

Python2

#!/usr/bin/env python
# encoding: utf-8

import urllib

proto,rest = urllib.splittype("http://192.168.8.24:8161/11/12.htm")
print(proto,rest)       # ('http','//192.168.8.24:8161/11/12.htm')
host,rest = urllib.splithost(rest)
print(host,rest)        # ('192.168.8.24:8161','/11/12.htm')
host,port = urllib.splitport(host)
if port is None:
    port =80
print(host,port)        # ('192.168.8.24','8161'

结果

('http','//192.168.8.24:8161/11/12.htm')
('192.168.8.24:8161','/11/12.htm')
('192.168.8.24','8161')

 

删除url中参数

url = "http://forcloud.xyz/PHPinfo.PHP?a=1&b=2"
index = url.find('?')
if index > 0:
    sURL = url[0:index]
else:
    sURL = url
print(sURL)

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐