python - 在python中获取url的特定部分

标签 python string list url urlparse

我正在使用 python 并尝试获取网址的特定部分,如下所示

from urlparse import urlparse as ue

url = "https://www.google.co.in"
img_url = ue(url).hostname

结果

www.google.co.in

案例1:

实际上我会有很多网址(存储在列表或其他地方),所以我想要的是,需要在网址中找到上面的域名并获取该部分在 www. 之后和 .co.in 之前,即字符串在 第一个点 之后和 第二个点 之前开始在目前的情况下,这只会导致 google

因此,假设给定的网址是 www.gmail.com,我应该只获取其中的 gmail,所以无论给出什么网址,代码都应该获取以第一个点开头和第二个点之前的部分。

情况2:

还有一些网址可以像这样直接给出 domain.com, stackoverflow.com ,而网址中没有 www ,在这种情况下,它应该只获取 stackoverflow

最后我的目的是从gmail、stackoverflow、google这样的url中获取主要名称......

一般来说,如果我有一个网址,我可以使用列表切片并获取字符串,但我会有许多 ulrs,因此需要像上面提到的那样动态获取想要的部分

谁能告诉我如何满足上述概念?

最佳答案

为什么你不能这样做:

from urlparse import urlparse as ue
urls = ['https://www.google.com', 'http://stackoverflow.com']
parsed = []
for url in urls:
    decoded = ue(url).hostname
    if decoded.startswith('www.'):
        decoded = ".".join(decoded.split('.')[1:])
    parsed.append(decoded.split('.')[0])
#parsed is now your parsed list of hostnames

此外,您可能想要更改 for 循环中的 if 语句,因为某些域可能以您想要删除的其他内容开头。

关于python - 在python中获取url的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15017358/

相关文章:

c - 为什么我无法在C语言中使用for循环比较两个字符串[如果字符串彼此相反]

python - 如何使用 Python 对同名数组进行分组?

python - Sklearn.pipeline 产生错误的结果

python - 在 Flask 应用程序中保持全局状态

java - 在哪里验证字符串参数

struct 中的 char* 是可重写的,但 main() 函数中的 char* 则不可重写。为什么?

python - Pandas df.loc 比较浮点条件从不工作

Python I/O 读取和追加(写入)

Python:按项目生成列表,它是两个列表的总和

Perl grep 即使在列表上下文中也总是返回匹配数