gpt4 book ai didi

python - 找到 http ://and or www. 并从域中剥离。离开 domain.com

转载 作者:太空狗 更新时间:2023-10-29 17:37:04 25 4
gpt4 key购买 nike

我是 python 的新手。我正在尝试解析 URL 文件以仅保留域名。

我的日志文件中的一些 url 以 http://开头,一些以 www 开头。有些两者都开头。

这是我的代码中去掉 http://部分的部分。我需要添加什么才能同时查找 http 和 www.并删除两者?

line = re.findall(r'(https?://\S+)', line)

目前,当我运行代码时,只有 http://被删除。如果我将代码更改为以下内容:

line = re.findall(r'(https?://www.\S+)', line)

只有以两者开头的域才会受到影响。我需要代码更有条件。时间差

编辑...这是我的完整代码...

import re
import sys
from urlparse import urlparse

f = open(sys.argv[1], "r")

for line in f.readlines():
line = re.findall(r'(https?://\S+)', line)
if line:
parsed=urlparse(line[0])
print parsed.hostname
f.close()

我把原来的帖子误认为是正则表达式。它确实在使用 urlparse。

最佳答案

对于这种特定情况,它可能有点矫枉过正,但我​​通常会使用 urlparse.urlsplit (Python 2)或 urllib.parse.urlsplit (Python 3)。

from urllib.parse import urlsplit  # Python 3
from urlparse import urlsplit # Python 2
import re

url = 'www.python.org'

# URLs must have a scheme
# www.python.org is an invalid URL
# http://www.python.org is valid

if not re.match(r'http(s?)\:', url):
url = 'http://' + url

# url is now 'http://www.python.org'

parsed = urlsplit(url)

# parsed.scheme is 'http'
# parsed.netloc is 'www.python.org'
# parsed.path is None, since (strictly speaking) the path was not defined

host = parsed.netloc # www.python.org

# Removing www.
# This is a bad idea, because www.python.org could
# resolve to something different than python.org

if host.startswith('www.'):
host = host[4:]

关于python - 找到 http ://and or www. 并从域中剥离。离开 domain.com,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14625693/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com